import { ReactNode, useState, createContext, useContext } from "react"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Button } from "@/components/ui/button"; import { LogOut, Store } from "lucide-react"; import { useAuthUnified } from "@/hooks/useAuthUnified"; import Sidebar from "./Sidebar"; import type { Group } from "@shared/schema"; interface StoreContextType { selectedStoreId: number | null; setSelectedStoreId: (storeId: number | null) => void; stores: Group[]; } const StoreContext = createContext(undefined); export const useStore = () => { const context = useContext(StoreContext); if (!context) { throw new Error("useStore must be used within a StoreProvider"); } return context; }; interface LayoutProps { children: ReactNode; } export default function Layout({ children }: LayoutProps) { const { user } = useAuthUnified(); const queryClient = useQueryClient(); const [selectedStoreId, setSelectedStoreId] = useState(() => { // Restaurer le selectedStoreId depuis localStorage si disponible const saved = localStorage.getItem('selectedStoreId'); const restoredId = saved ? parseInt(saved) : null; console.log('🏪 Layout - Restoring selectedStoreId from localStorage:', { saved, restoredId }); return restoredId; }); const { data: stores = [] } = useQuery({ queryKey: ['/api/groups'], enabled: !!user, }); const handleLogout = () => { window.location.href = "/api/logout"; }; return (
{/* Header with store selector for admin */}

LogiFlow

{/* Store selector for admin - moved to top right */} {user?.role === 'admin' && stores.length > 0 && (
)}
{children}
); }