MVP Build

This commit is contained in:
Eric Gullickson
2025-08-09 12:47:15 -05:00
parent 2e8816df7f
commit 8f5117a4e2
92 changed files with 5910 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
/**
* @ai-summary Global state management with Zustand
* @ai-context Minimal global state, features manage their own state
*/
import { create } from 'zustand';
import { devtools, persist } from 'zustand/middleware';
interface User {
id: string;
email: string;
name?: string;
}
interface AppState {
// User state
user: User | null;
setUser: (user: User | null) => void;
// UI state
sidebarOpen: boolean;
toggleSidebar: () => void;
// Selected vehicle (for context)
selectedVehicleId: string | null;
setSelectedVehicle: (id: string | null) => void;
}
export const useAppStore = create<AppState>()(
devtools(
persist(
(set) => ({
// User state
user: null,
setUser: (user) => set({ user }),
// UI state
sidebarOpen: true,
toggleSidebar: () => set((state) => ({ sidebarOpen: !state.sidebarOpen })),
// Selected vehicle
selectedVehicleId: null,
setSelectedVehicle: (vehicleId) => set({ selectedVehicleId: vehicleId }),
}),
{
name: 'motovaultpro-storage',
partialize: (state) => ({
selectedVehicleId: state.selectedVehicleId,
sidebarOpen: state.sidebarOpen,
}),
}
)
)
);