import { Loader2 } from 'lucide-react' import { AiIconAnimation, Button, Sheet, SheetContent, SheetDescription, SheetTitle, Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_, } from 'ui' import { QueryDetail } from '../../QueryPerformance/QueryDetail' import { QueryIndexes } from '../../QueryPerformance/QueryIndexes' import { buildExplainOptimizationPrompt } from '../../QueryPerformance/QueryPerformance.ai' import type { ClassifiedQuery } from '../QueryInsightsHealth/QueryInsightsHealth.types' import { ExplainVisualizer } from '@/components/interfaces/ExplainVisualizer/ExplainVisualizer' import type { QueryPlanRow } from '@/components/interfaces/ExplainVisualizer/ExplainVisualizer.types' import { SIDEBAR_KEYS } from '@/components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' import { useAiAssistantStateSnapshot } from '@/state/ai-assistant-state' import { useSidebarManagerSnapshot } from '@/state/sidebar-manager-state' interface QueryInsightsDetailSheetProps { open: boolean onOpenChange: (open: boolean) => void activeSheetRow: ClassifiedQuery | undefined sheetView: 'details' | 'indexes' | 'explain' onSheetViewChange: (view: 'details' | 'indexes' | 'explain') => void onClose: () => void dataGridContainerRef: React.RefObject triageContainerRef: React.RefObject explainLoadingQuery: string | null explainResults: Record } export const QueryInsightsDetailSheet = ({ open, onOpenChange, activeSheetRow, sheetView, onSheetViewChange, onClose, dataGridContainerRef, triageContainerRef, explainLoadingQuery, explainResults, }: QueryInsightsDetailSheetProps) => { const { openSidebar } = useSidebarManagerSnapshot() const aiSnap = useAiAssistantStateSnapshot() return ( Query details Query Insights Details & Indexes { if ( dataGridContainerRef.current?.contains(event.target as Node) || triageContainerRef.current?.contains(event.target as Node) ) { event.preventDefault() } }} > onSheetViewChange(v as 'details' | 'indexes' | 'explain')} >
Query details Indexes {activeSheetRow?.issueType !== 'error' && ( Explain )}
{activeSheetRow && ( onSheetViewChange('indexes')} onClose={onClose} /> )} {activeSheetRow && } {explainLoadingQuery ? (
Running EXPLAIN ANALYZE...
) : activeSheetRow && explainResults[activeSheetRow.query]?.length > 0 ? ( <>

EXPLAIN ANALYZE output

) : (
No explain results available.
)}
) }