feat(canvas): 绘图工具 - 集成 Excalidraw 并支持后台切换默认引擎

This commit is contained in:
ddCat committed 2026-08-03 14:58:49 +08:00
1 parent 7fa5d7215a
commit 6058602bf2
28 files changed
+1617 -177

No files matched your search

+7 -1
View File
@@ -1,5 +1,7 @@
import { create } from "zustand";
import { DEFAULT_DRAWING_ENGINE, type CanvasDrawingEngineSetting } from "@/lib/canvas/canvas-drawing-engine";
export type LocalUser = {
id: string;
username: string;
@@ -26,8 +28,10 @@ type UserStore = {
hydrated: boolean;
user: LocalUser | null;
runtimeLimits: RuntimeLimits;
drawingEngine: CanvasDrawingEngineSetting;
setUser: (user: LocalUser | null) => void;
setRuntimeLimits: (limits?: RuntimeLimits) => void;
setDrawingEngine: (setting?: CanvasDrawingEngineSetting) => void;
setHydrated: (hydrated: boolean) => void;
clearSession: () => void;
};
@@ -36,8 +40,10 @@ export const useUserStore = create<UserStore>()((set) => ({
hydrated: false,
user: null,
runtimeLimits: { activeTaskLimit: 5, resourceUploadMB: 50, sessionUploadMB: 32 },
drawingEngine: { defaultEngine: DEFAULT_DRAWING_ENGINE },
setUser: (user) => set({ user }),
setRuntimeLimits: (runtimeLimits) => set({ runtimeLimits: runtimeLimits || { activeTaskLimit: 5, resourceUploadMB: 50, sessionUploadMB: 32 } }),
setDrawingEngine: (drawingEngine) => set({ drawingEngine: drawingEngine || { defaultEngine: DEFAULT_DRAWING_ENGINE } }),
setHydrated: (hydrated) => set({ hydrated }),
clearSession: () => set({ user: null, runtimeLimits: { activeTaskLimit: 5, resourceUploadMB: 50, sessionUploadMB: 32 } }),
clearSession: () => set({ user: null, runtimeLimits: { activeTaskLimit: 5, resourceUploadMB: 50, sessionUploadMB: 32 }, drawingEngine: { defaultEngine: DEFAULT_DRAWING_ENGINE } }),
}));