* feat(canvas): 绘图工具 - 支持自定义 tldraw License Key * docs(canvas): 绘图工具 - 添加 License Key 页面截图
31 lines
1.2 KiB
TypeScript
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";
|
|
} |