diff --git a/client/src/components/Layout.tsx b/client/src/components/Layout.tsx index c34387c..86771d1 100644 --- a/client/src/components/Layout.tsx +++ b/client/src/components/Layout.tsx @@ -98,7 +98,14 @@ 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 && !needsUpdate) { - console.log('🏪 Auto-selecting single available store for directeur/manager:', stores[0].id); + console.log('🏪 Auto-selecting single available store for directeur/manager:', { + storeId: stores[0].id, + storeName: stores[0].name, + userRole: user.role, + userId: user.id, + previousSelectedStoreId: selectedStoreId, + timestamp: new Date().toISOString() + }); const singleStoreId = stores[0].id; setSelectedStoreId(singleStoreId); localStorage.setItem('selectedStoreId', singleStoreId.toString()); diff --git a/client/src/pages/Tasks.tsx b/client/src/pages/Tasks.tsx index 1610f3a..592d3e7 100644 --- a/client/src/pages/Tasks.tsx +++ b/client/src/pages/Tasks.tsx @@ -331,6 +331,18 @@ export default function Tasks() { timestamp: new Date().toISOString() }); + // Force refresh when selectedStoreId changes for directeur/manager + useEffect(() => { + if (user && (user.role === 'directeur' || user.role === 'manager') && selectedStoreId) { + console.log('🔄 FORCE REFRESH: selectedStoreId changed for directeur/manager:', { + userRole: user.role, + selectedStoreId, + timestamp: new Date().toISOString() + }); + queryClient.invalidateQueries({ queryKey: ["/api/tasks"] }); + } + }, [selectedStoreId, user, queryClient]); + // États locaux const [searchTerm, setSearchTerm] = useState(""); const [statusFilter, setStatusFilter] = useState("all");