diff --git a/frontend/src/store/useAppStore.ts b/frontend/src/store/useAppStore.ts index f4999ee..ef8ba85 100644 --- a/frontend/src/store/useAppStore.ts +++ b/frontend/src/store/useAppStore.ts @@ -1,4 +1,5 @@ import { create } from 'zustand'; +import { persist, createJSONStorage } from 'zustand/middleware'; interface ConnectionConfig { host: string; @@ -23,17 +24,31 @@ interface AppState { setActiveTable: (table: string | null) => void; } -export const useAppStore = create((set) => ({ - darkMode: true, - activeTab: 'explorer', - activeDatabase: null, - activeTable: null, - connection: null, - connected: false, - toggleDarkMode: () => set((state) => ({ darkMode: !state.darkMode })), - setActiveTab: (tab) => set({ activeTab: tab }), - setConnection: (config) => set({ connection: config, connected: true }), - clearConnection: () => set({ connection: null, connected: false, activeDatabase: null, activeTable: null }), - setActiveDatabase: (db) => set({ activeDatabase: db, activeTable: null }), - setActiveTable: (table) => set({ activeTable: table }), -})); +export const useAppStore = create()( + persist( + (set) => ({ + darkMode: true, + activeTab: 'explorer', + activeDatabase: null, + activeTable: null, + connection: null, + connected: false, + toggleDarkMode: () => set((state) => ({ darkMode: !state.darkMode })), + setActiveTab: (tab) => set({ activeTab: tab }), + setConnection: (config) => set({ connection: config, connected: true }), + clearConnection: () => set({ connection: null, connected: false, activeDatabase: null, activeTable: null }), + setActiveDatabase: (db) => set({ activeDatabase: db, activeTable: null }), + setActiveTable: (table) => set({ activeTable: table }), + }), + { + name: 'mariavel-storage', + storage: createJSONStorage(() => localStorage), + // Only persist connection and connected status + partialize: (state) => ({ + connection: state.connection, + connected: state.connected, + darkMode: state.darkMode + }), + } + ) +);