feat(*): 功能开放与页面布局 - 新增运维开关并优化后台及创作界面空间利用

This commit is contained in:
ddCat committed 2026-08-04 16:24:18 +08:00
1 parent 5e93fa7704
commit 1217f76b3b
36 files changed
+723 -86

No files matched your search

+8 -1
View File
@@ -1,4 +1,4 @@
import { getSystemChannels, type AuthSessionPayload } from "@/services/api/auth";
import { getFeatureAvailability, getSystemChannels, type AuthSessionPayload } from "@/services/api/auth";
import { localForageStorage } from "@/lib/localforage-storage";
import { appQueryClient } from "@/lib/query-client";
import { scopedLocalStorage, setActiveUserScope } from "@/lib/user-scope";
@@ -26,6 +26,7 @@ export async function applyUserSession(payload: AuthSessionPayload) {
useUserStore.getState().setUser(payload.user);
useUserStore.getState().setRuntimeLimits(payload.runtimeLimits);
useUserStore.getState().setDrawingEngine(payload.drawingEngine);
useUserStore.getState().setFeatures(payload.features);
await Promise.all([useCanvasStore.persist.rehydrate(), useAssetStore.persist.rehydrate(), useConfigStore.persist.rehydrate()]);
// Zustand 在目标 scope 没有快照时会保留旧内存,必须显式恢复该 scope 的空状态。
if (!persistedCanvas) useCanvasStore.setState({ projects: [] });
@@ -57,3 +58,9 @@ export async function refreshSystemChannels() {
const payload = await getSystemChannels();
useConfigStore.getState().mergeSystemChannels(payload.channels || []);
}
export async function refreshFeatureAvailability() {
const payload = await getFeatureAvailability();
useUserStore.getState().setFeatures(payload.features);
return payload.features;
}