This commit is contained in:
qixinbo
2026-03-15 01:29:36 +08:00
parent 4985c1eed3
commit 76724b2313
12 changed files with 1345 additions and 82 deletions
+14 -7
View File
@@ -1,13 +1,21 @@
import { create } from 'zustand';
export interface ChartSpec {
chart_type: string;
title: string;
x_axis: string;
y_axis: string;
color?: string;
description?: string;
}
export interface VisualizationState {
currentData: any[] | null;
currentSQL: string | null;
currentChartType: 'bar' | 'line';
currentChartSpec: ChartSpec | null;
isLoading: boolean;
error: string | null;
setVisualization: (data: any[], sql: string) => void;
setChartType: (type: 'bar' | 'line') => void;
setVisualization: (data: any[], sql: string, chartSpec?: ChartSpec | null) => void;
setLoading: (loading: boolean) => void;
setError: (error: string | null) => void;
clearVisualization: () => void;
@@ -16,12 +24,11 @@ export interface VisualizationState {
export const useVisualizationStore = create<VisualizationState>((set) => ({
currentData: null,
currentSQL: null,
currentChartType: 'bar',
currentChartSpec: null,
isLoading: false,
error: null,
setVisualization: (data, sql) => set({ currentData: data, currentSQL: sql, error: null }),
setChartType: (type) => set({ currentChartType: type }),
setVisualization: (data, sql, chartSpec = null) => set({ currentData: data, currentSQL: sql, currentChartSpec: chartSpec, error: null }),
setLoading: (loading) => set({ isLoading: loading }),
setError: (error) => set({ error, isLoading: false }),
clearVisualization: () => set({ currentData: null, currentSQL: null, error: null }),
clearVisualization: () => set({ currentData: null, currentSQL: null, currentChartSpec: null, error: null }),
}));