diff --git a/opencad_viewport/src/App.tsx b/opencad_viewport/src/App.tsx index 1aa10db..d0c0e9e 100644 --- a/opencad_viewport/src/App.tsx +++ b/opencad_viewport/src/App.tsx @@ -4,7 +4,8 @@ import { ChatPanel } from "./components/ChatPanel"; import { FeatureTreePanel } from "./components/FeatureTreePanel"; import { SketchEditor } from "./components/SketchEditor"; import { Viewport3D } from "./components/Viewport3D"; -import { mockFeatureTree, mockMeshes, mockSketch } from "./mock/mockData"; +import { mockMeshes } from "./mock/mockData"; +import { createEmptyTree, createEmptySketch } from "./types"; import type { ChatOperationExecution, FeatureNodeView, FeatureTreeView, MeshPayload, SketchPayload } from "./types"; const FALLBACK_MESH_Y_OFFSET_SCALE = 0.35; @@ -56,9 +57,9 @@ function createFallbackMesh(node: FeatureNodeView, index: number): MeshPayload { export default function App(): JSX.Element { const api = useMemo(() => new OpenCadApiClient(), []); - const [tree, setTree] = useState(mockFeatureTree); - const [meshes, setMeshes] = useState(mockMeshes); - const [sketch, setSketch] = useState(mockSketch); + const [tree, setTree] = useState(createEmptyTree); + const [meshes, setMeshes] = useState([]); + const [sketch, setSketch] = useState(createEmptySketch); const [selectedNodeId, setSelectedNodeId] = useState(tree.root_id); const selectedShapeId = tree.nodes[selectedNodeId]?.shape_id ?? null; diff --git a/opencad_viewport/src/types.ts b/opencad_viewport/src/types.ts index 9df5d9f..cec6a7b 100644 --- a/opencad_viewport/src/types.ts +++ b/opencad_viewport/src/types.ts @@ -37,6 +37,16 @@ export interface FeatureTreeView { revision: number; } +export function createEmptyTree(): FeatureTreeView { + return { + root_id: "root", + active_branch: "main", + revision: 0, + nodes: { + }, + }; +} + export interface MeshPayload { shapeId: string; vertices: number[] | Float32Array; @@ -84,6 +94,10 @@ export interface SketchPayload { constraints: SketchConstraint[]; } +export function createEmptySketch(): SketchPayload { + return { entities: {}, constraints: [] }; +} + export interface SolverResult { status: "SOLVED" | "OVERCONSTRAINED" | "UNDERCONSTRAINED"; sketch: SketchPayload;