import { useEffect } from "react"; import { Navigate, useNavigate } from "react-router"; import { useAuth, usePermission } from "~/context/AuthContext"; import { DashboardPage } from "../admin/DashboardPage"; import { useScriptWorkspaceStore } from "./state/scriptWorkspaceStore"; export default function DashboardRoute() { const canViewDevelopmentWorkbench = usePermission("dashboard:view"); const { currentWorkspace } = useAuth(); const scripts = useScriptWorkspaceStore((s) => s.scripts); const scriptCount = useScriptWorkspaceStore((s) => s.scriptCount); const loadScriptCount = useScriptWorkspaceStore((s) => s.loadScriptCount); const apiOnline = useScriptWorkspaceStore((s) => s.apiOnline); const workspaceId = currentWorkspace?.workspace_id; const navigate = useNavigate(); if (!canViewDevelopmentWorkbench) { return ; } // Reload on workspace switch — DashboardRoute is not keyed by // workspace/user (only ScriptsPage is), so without this dep the // previous workspace's count would persist. useEffect(() => { void loadScriptCount(); }, [loadScriptCount, workspaceId]); return ( { if (page === "scripts") navigate("/scripts"); else if (page === "schedules") navigate("/schedules"); else navigate("/system"); }} /> ); }