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

This commit is contained in:
ddCat
2026-08-04 16:24:18 +08:00
parent 8f7c492b70
commit f439d600ba
36 changed files with 723 additions and 86 deletions

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;
}