import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, DialogDescription } from "@/components/ui/dialog"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, LineChart, Line } from 'recharts'; import { Code, Table as TableIcon, BarChart as ChartIcon, LineChart as LineChartIcon, Download, LayoutDashboard, Loader2 } from "lucide-react"; import { ScrollArea } from "@/components/ui/scroll-area"; import { useDashboardStore } from "@/store/dashboardStore"; import { useVisualizationStore } from "@/store/visualizationStore"; export function VisualizationPanel() { const [view, setView] = useState<'table' | 'chart'>('chart'); const [chartType, setChartType] = useState<'bar' | 'line'>('bar'); const { addChart } = useDashboardStore(); const { currentData, currentSQL, isLoading, error } = useVisualizationStore(); const handleAddToDashboard = () => { if (!currentData || !currentSQL) return; addChart({ id: Date.now().toString(), title: 'Generated Analysis', // Could be dynamic based on query type: chartType, data: currentData, sql: currentSQL, }); alert("Added to Dashboard!"); }; if (isLoading) { return (
No data to visualize.
Ask the chat to generate some insights!
Data format is not supported for visualization.