kerf-engine/app/src/App.tsx
jlightner 35bc542aad feat: Built app shell with ViewState routing, drag-and-drop FileUpload…
- "app/src/App.tsx"
- "app/src/App.css"
- "app/src/views/ImportConvert.tsx"
- "app/src/views/ImportConvert.module.css"
- "app/src/components/FileUpload.tsx"
- "app/src/components/PresetSelector.tsx"

GSD-Task: S01/T02
2026-03-26 05:07:37 +00:00

28 lines
927 B
TypeScript

import { useState } from 'react';
import type { TraceMetadata } from './types/engine';
import ImportConvert from './views/ImportConvert';
import './App.css';
type ViewState = 'import' | 'canvas' | 'export';
function App() {
const [view, setView] = useState<ViewState>('import');
const [_svgResult, setSvgResult] = useState<string | null>(null);
const [_traceMetadata, setTraceMetadata] = useState<TraceMetadata | null>(null);
const handleUseThis = (svgOutput: string, metadata: unknown) => {
setSvgResult(svgOutput);
setTraceMetadata(metadata as TraceMetadata);
setView('canvas');
};
return (
<div id="app">
{view === 'import' && <ImportConvert onUseThis={handleUseThis} />}
{view === 'canvas' && <div className="placeholder-view">View 2: Design Canvas</div>}
{view === 'export' && <div className="placeholder-view">View 3: Export</div>}
</div>
);
}
export default App;