refactor: remove "use client" directive from multiple files and update project structure to align with Vite and React Router

This commit is contained in:
HouYunFei
2026-06-26 17:24:48 +08:00
parent e635ec6908
commit 443afab7bd
88 changed files with 94 additions and 230 deletions
+20
View File
@@ -0,0 +1,20 @@
import type { CanvasProject } from "@/stores/canvas/use-canvas-store";
export type CanvasExportFile = {
app: "infinite-canvas";
version: 3;
exportedAt: string;
projects: CanvasProjectExportItem[];
};
export type CanvasProjectExportItem = {
project: CanvasProject;
files: CanvasExportAsset[];
};
export type CanvasExportAsset = {
storageKey: string;
path: string;
mimeType: string;
bytes: number;
};
+137
View File
@@ -0,0 +1,137 @@
export type Position = {
x: number;
y: number;
};
export type ViewportTransform = {
x: number;
y: number;
k: number;
};
export enum CanvasNodeType {
Image = "image",
Text = "text",
Config = "config",
Video = "video",
Audio = "audio",
}
export type CanvasNodeStatus = "idle" | "success" | "loading" | "error";
export type CanvasGenerationMode = "text" | "image" | "video" | "audio";
export type CanvasImageGenerationType = "generation" | "edit";
export type CanvasNodeMetadata = {
content?: string;
composerContent?: string;
prompt?: string;
status?: CanvasNodeStatus;
errorDetails?: string;
fontSize?: number;
generationMode?: CanvasGenerationMode;
generationType?: CanvasImageGenerationType;
model?: string;
size?: string;
quality?: string;
count?: number;
seconds?: string;
vquality?: string;
generateAudio?: string;
watermark?: string;
audioVoice?: string;
audioFormat?: string;
audioSpeed?: string;
audioInstructions?: string;
references?: string[];
naturalWidth?: number;
naturalHeight?: number;
freeResize?: boolean;
isBatchRoot?: boolean;
batchRootId?: string;
batchChildIds?: string[];
batchUsesReferenceImages?: boolean;
primaryImageId?: string;
imageBatchExpanded?: boolean;
storageKey?: string;
mimeType?: string;
bytes?: number;
durationMs?: number;
};
export type CanvasNodeData = {
id: string;
type: CanvasNodeType;
title: string;
position: Position;
width: number;
height: number;
metadata?: CanvasNodeMetadata;
};
export type CanvasConnection = {
id: string;
fromNodeId: string;
toNodeId: string;
};
export type CanvasAssistantReference = {
id: string;
type: CanvasNodeType;
title: string;
dataUrl?: string;
storageKey?: string;
text?: string;
};
export type CanvasAssistantImage = {
id: string;
dataUrl: string;
storageKey?: string;
prompt: string;
};
export type CanvasAssistantMessage = {
id: string;
role: "user" | "assistant" | "system" | "tool" | "error";
title?: string;
text: string;
meta?: string;
detail?: unknown;
references?: CanvasAssistantReference[];
};
export type CanvasAssistantSession = {
id: string;
title: string;
messages: CanvasAssistantMessage[];
createdAt: string;
updatedAt: string;
};
export type ConnectionHandle = {
nodeId: string;
handleType: "source" | "target";
};
export type SelectionBox = {
startWorldX: number;
startWorldY: number;
currentWorldX: number;
currentWorldY: number;
additive: boolean;
initialSelectedNodeIds: string[];
};
export type ContextMenuState =
| {
type: "node";
x: number;
y: number;
nodeId: string;
}
| {
type: "connection";
x: number;
y: number;
connectionId: string;
};