24 lines
943 B
TypeScript
24 lines
943 B
TypeScript
import { useAuth } from "~/context/AuthContext";
|
||
import { useScriptWorkspaceStore } from "~/features/platform/state/scriptWorkspaceStore";
|
||
import { useUiStore } from "~/features/platform/state/uiStore";
|
||
import { ProjectManagementPage } from "~/features/admin/ProjectManagementPage";
|
||
|
||
/**
|
||
* /system/projects 路由页。ProjectManagementPage 内部有 useState,
|
||
* 在 user / workspace 切换时必须重挂载以重置本地状态
|
||
* (见 CLAUDE.md「Route components with their own internal state」)。
|
||
*/
|
||
export default function ProjectManagementRoute() {
|
||
const { user, currentWorkspace } = useAuth();
|
||
const setApiOnline = useScriptWorkspaceStore((s) => s.setApiOnline);
|
||
const pushToast = useUiStore((s) => s.pushToast);
|
||
|
||
return (
|
||
<ProjectManagementPage
|
||
key={`${user?.user_id ?? "anon"}-${currentWorkspace?.workspace_id ?? "none"}`}
|
||
onNotify={pushToast}
|
||
onConnectionChange={setApiOnline}
|
||
/>
|
||
);
|
||
}
|