mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-10-07 18:27:47 +08:00
The canvas now fills the window and the chat floats on its right. draw.io is served from our own origin (public/drawio, downloaded at build time and checked against the release's SHA-256), so the app can drive the editor directly: - every AI change becomes a version card with a thumbnail; compare, restore or undo it, and Ctrl+Z on the canvas takes an AI change back in one step - shapes the AI just changed are highlighted on the canvas - selected shapes appear as a chip and are sent to the model - the app's own canvas toolbar, shape library and page tabs replace draw.io's chrome - new start screen, session rename and switcher, open .drawio files - settings split into Models & keys, Appearance, Advanced and About - phones switch between canvas and chat - dark mode keeps the diagram on a white sheet and no longer flashes With an external draw.io (NEXT_PUBLIC_DRAWIO_BASE_URL) the app falls back to draw.io's own toolbar and the features above that need same origin are off. The chat logic moved from the 1500-line chat panel into a chat engine plus small UI components; zustand holds canvas, versions, settings and UI state.
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
// Centralized localStorage keys for settings.
|
|
// Chat data is stored in IndexedDB via session-storage.ts
|
|
|
|
export const STORAGE_KEYS = {
|
|
// Access code for password-protected deployments
|
|
accessCode: "next-ai-draw-io-access-code",
|
|
accessCodeRequired: "next-ai-draw-io-access-code-required",
|
|
|
|
// Multi-model configuration
|
|
modelConfigs: "next-ai-draw-io-model-configs",
|
|
|
|
// Appearance
|
|
darkMode: "next-ai-draw-io-dark-mode",
|
|
locale: "next-ai-draw-io-locale",
|
|
minimalStyle: "next-ai-draw-io-minimal-style",
|
|
panelWidth: "next-ai-draw-io-panel-width",
|
|
|
|
// Chat input preferences
|
|
sendShortcut: "next-ai-draw-io-send-shortcut",
|
|
|
|
// Diagram validation
|
|
vlmValidationEnabled: "next-ai-draw-io-vlm-validation-enabled",
|
|
|
|
// Custom system message
|
|
customSystemMessage: "next-ai-draw-io-custom-system-message",
|
|
|
|
// Output token budget per turn (empty = server default)
|
|
maxOutputTokens: "next-ai-draw-io-max-output-tokens",
|
|
|
|
// Langfuse session id
|
|
sessionId: "next-ai-draw-io-session-id",
|
|
} as const
|