diff --git a/client/src/components/Layout.tsx b/client/src/components/Layout.tsx index c58f462..a96fd2a 100644 --- a/client/src/components/Layout.tsx +++ b/client/src/components/Layout.tsx @@ -82,10 +82,20 @@ export default function Layout({ children }: LayoutProps) { } } + // IMPORTANT FIX: Pour les rôles directeur/manager, forcer la sélection d'un magasin spécifique + // si aucun n'est sélectionné et qu'ils n'ont accès qu'à un seul magasin + if ((user.role === 'directeur' || user.role === 'manager') && !selectedStoreId && stores.length === 1) { + console.log('🏪 Auto-selecting single available store for directeur/manager:', stores[0].id); + const singleStoreId = stores[0].id; + setSelectedStoreId(singleStoreId); + localStorage.setItem('selectedStoreId', singleStoreId.toString()); + } + console.log('🏪 Store initialization complete:', { user: user.role, selectedStoreId, - storesCount: stores.length + storesCount: stores.length, + autoSelected: (user.role === 'directeur' || user.role === 'manager') && !selectedStoreId && stores.length === 1 }); setStoreInitialized(true); } @@ -131,14 +141,18 @@ export default function Layout({ children }: LayoutProps) { - {/* Store selector for admin - responsive */} - {user?.role === 'admin' && stores.length > 0 && ( + {/* Store selector for admin, directeur, and manager - responsive */} + {user && (user.role === 'admin' || user.role === 'directeur' || user.role === 'manager') && stores.length > 0 && (