feat(discovery): add FindingDrawer component and restructure i18n keys

- Add FindingDrawer component for displaying finding details when no
  associated issue exists
- Refactor i18n keys for better organization:
  - status.* → session.status.* (session-related)
  - severity.* → findings.severity.* (finding-related)
- Update DiscoveryDetail to show FindingDrawer for orphan findings
- Add severity/priority mapping in discovery-routes for compatibility
This commit is contained in:
catlog22
2026-02-28 16:26:11 +08:00
parent c3ddf7e322
commit cd54c10256
10 changed files with 291 additions and 25 deletions

View File

@@ -7,7 +7,7 @@ import { useIntl } from 'react-intl';
import { Radar, AlertCircle, Loader2 } from 'lucide-react';
import { Card } from '@/components/ui/Card';
import { Badge } from '@/components/ui/Badge';
import { useIssueDiscovery } from '@/hooks/useIssues';
import { useIssueDiscovery, useIssues } from '@/hooks/useIssues';
import { DiscoveryCard } from '@/components/issue/discovery/DiscoveryCard';
import { DiscoveryDetail } from '@/components/issue/discovery/DiscoveryDetail';
@@ -29,6 +29,12 @@ export function DiscoveryPage() {
isExporting,
} = useIssueDiscovery({ refetchInterval: 3000 });
// Fetch issues to find related ones when clicking findings
const { issues } = useIssues({
// Don't apply filters to get all issues for matching
filter: undefined
});
if (error) {
return (
<div className="space-y-6">
@@ -167,6 +173,7 @@ export function DiscoveryPage() {
onExport={exportFindings}
onExportSelected={exportSelectedFindings}
isExporting={isExporting}
issues={issues}
/>
)}
</div>