Files
image-studio/editor/initial-state.ts

50 lines
1015 B
TypeScript

import type { AppState, EditorState } from "./state";
import { initialToolState } from "./tools";
export const initialEditorState: EditorState = {
viewport: {
center: { x: 0, y: 0 },
zoom: 1,
rotation: 0,
size: { w: 0, h: 0 },
},
selection: {
layerIds: [],
},
tools: initialToolState,
generation: {
candidates: [],
selectedCandidateId: undefined,
compareMode: "result",
jobs: [],
resources: { status: "idle" },
},
commandPalette: {
open: false,
query: "",
selectedIndex: 0,
},
workspace: {
panel: "none",
},
transformSession: undefined,
maskEdit: undefined,
brushPreview: undefined,
brushStrokePreview: undefined,
pointerSession: undefined,
};
export function createInitialAppState(name = "Untitled"): AppState {
return {
document: {
id: crypto.randomUUID(),
name,
version: 1,
artboards: [],
assets: [],
},
editor: initialEditorState,
history: { past: [], future: [] },
};
}