Files
ttstd-infinite-canvas/web/src/lib/canvas/canvas-drawing-engine.ts
ahyang d83ec033bb feat(canvas): 绘图工具支持自定义 tldraw License Key (#100)
* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key

* docs(canvas): 绘图工具 - 添加 License Key 页面截图
2026-08-03 21:38:04 +08:00

31 lines
1.2 KiB
TypeScript

import type { CanvasNodeData } from "@/types/canvas";
export type CanvasDrawingEngine = "tldraw" | "excalidraw";
export type CanvasDrawingEngineSetting = {
defaultEngine: CanvasDrawingEngine;
tldrawLicenseKey?: string;
configured?: boolean;
updatedBy?: string;
createdAt?: string;
updatedAt?: string;
};
export const DEFAULT_DRAWING_ENGINE: CanvasDrawingEngine = "excalidraw";
export function drawingEngineForNode(node?: Pick<CanvasNodeData, "metadata"> | null): CanvasDrawingEngine {
// 旧绘图节点没有引擎标记,其快照只能由 tldraw 读取。
return node?.metadata?.drawingEngine === "excalidraw" ? "excalidraw" : "tldraw";
}
export function resolveTldrawLicenseKey(configuredLicenseKey?: string) {
return configuredLicenseKey?.trim() || import.meta.env.VITE_TLDRAW_LICENSE_KEY?.trim() || undefined;
}
export function isDrawingEngineAvailable(engine: CanvasDrawingEngine, configuredLicenseKey?: string) {
return engine === "excalidraw" || Boolean(resolveTldrawLicenseKey(configuredLicenseKey));
}
export function drawingEngineLabel(engine: CanvasDrawingEngine) {
return engine === "excalidraw" ? "Excalidraw" : "tldraw";
}