diff --git a/src/components/layout/AppShell.tsx b/src/components/layout/AppShell.tsx index bd8a5ef..707adfd 100644 --- a/src/components/layout/AppShell.tsx +++ b/src/components/layout/AppShell.tsx @@ -1,4 +1,6 @@ import { useEffect } from 'react' +import { useAdminReviewStore } from '../../state/adminReviewStore' +import { useAuthStore } from '../../state/authStore' import { useCatalogStore } from '../../state/catalogStore' import { useProjectStore } from '../../state/projectStore' import { useSubmissionStore } from '../../state/submissionStore' @@ -14,12 +16,23 @@ export default function AppShell() { const isCatalogLoaded = useCatalogStore((s) => s.isLoaded) const loadCatalog = useCatalogStore((s) => s.loadCatalog) const loadMySubmissions = useSubmissionStore((s) => s.loadMySubmissions) + const loadAuth = useAuthStore((s) => s.load) + const role = useAuthStore((s) => s.role) + const loadAdminQueue = useAdminReviewStore((s) => s.loadAll) useEffect(() => { loadInitialDiagram() loadCatalog() loadMySubmissions() - }, [loadInitialDiagram, loadCatalog, loadMySubmissions]) + loadAuth() + }, [loadInitialDiagram, loadCatalog, loadMySubmissions, loadAuth]) + + // Only Admins/Super-Admins need the review queue at all — and role isn't + // known until loadAuth() above resolves, so this is a separate effect + // keyed on it rather than bundled into the one above. + useEffect(() => { + if (role === 'admin' || role === 'super_admin') loadAdminQueue() + }, [role, loadAdminQueue]) if (!isLoaded || !isCatalogLoaded) { return