import { useCallback } from 'react' import { useQueryClient } from '@tanstack/react-query' import { KPICards } from '@/components/dashboard/KPICards' import { TrendChart } from '@/components/dashboard/TrendChart' import { SeverityDistribution } from '@/components/dashboard/SeverityDistribution' import { RecentFindings } from '@/components/dashboard/RecentFindings' import { ActiveSessions } from '@/components/dashboard/ActiveSessions' import { QuickActions } from '@/components/dashboard/QuickActions' import { useFindings, useFindingStats } from '@/hooks/useFindings' import { useSessions } from '@/hooks/useSessions' import { useSocket } from '@/hooks/useSocket' export function Dashboard() { const queryClient = useQueryClient() const { data: findings = [], isLoading: findingsLoading } = useFindings() const { data: stats, isLoading: statsLoading } = useFindingStats() const { data: sessions = [] } = useSessions() const refreshData = useCallback(() => { void queryClient.invalidateQueries({ queryKey: ['findings'] }) void queryClient.invalidateQueries({ queryKey: ['sessions'] }) }, [queryClient]) useSocket(useCallback((event: string) => { if (['session:started', 'session:completed', 'session:error', 'anomaly:detected'].includes(event)) { refreshData() } }, [refreshData])) return (
Overview of your security findings