atharva9/meridian-api
0
1import { create } from 'zustand';2import { createJSONStorage, persist } from 'zustand/middleware';3 4type DatasetState = {5 datasetName?: string;6 rows: number;7 data: Record<string, number | string>[];8 columns: string[];9 numericColumns: string[];10 targetCandidates: string[];11 channels: string[];12 controls: string[];13 setDataset: (payload: Partial<DatasetState>) => void;14 startNewDatasetSession: () => void;15};16 17export const useDatasetStore = create<DatasetState>()(18 persist(19 (set) => ({20 rows: 0,21 data: [],22 columns: [],23 numericColumns: [],24 targetCandidates: [],25 channels: [],26 controls: [],27 setDataset: (payload) => set((s) => ({ ...s, ...payload })),28 startNewDatasetSession: () =>29 set({30 datasetName: undefined,31 rows: 0,32 data: [],33 columns: [],34 numericColumns: [],35 targetCandidates: [],36 channels: [],37 controls: [],38 }),39 }),40 {41 name: 'meridian-dataset',42 storage: createJSONStorage(() => localStorage),43 },44 ),45);46 