47 lines
1.3 KiB
Markdown
47 lines
1.3 KiB
Markdown
# Micronomicon — Frontend
|
|
|
|
React 19 + Vite + TypeScript + shadcn/ui. See the [root README](../README.md) for full project docs.
|
|
|
|
## Dev
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev # http://localhost:5173 — proxies /api to localhost:8080
|
|
```
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build # output → dist/ (copied into Docker image)
|
|
```
|
|
|
|
## Structure
|
|
|
|
```
|
|
src/
|
|
App.tsx ← routes
|
|
routes/
|
|
DashboardView.tsx ← page table
|
|
EditorView.tsx ← split-pane editor
|
|
GraphView.tsx ← React Flow graph
|
|
components/
|
|
dashboard/StatusBadge.tsx
|
|
editor/
|
|
EditorPane.tsx ← CodeMirror 6
|
|
PreviewPane.tsx ← micron output (ScrollArea)
|
|
ToolBar.tsx
|
|
shared/
|
|
AppShell.tsx ← TooltipProvider + Toaster wrapper
|
|
NavBar.tsx
|
|
ui/ ← shadcn components (auto-generated)
|
|
lib/
|
|
utils.ts ← cn() utility
|
|
stores/
|
|
editorStore.ts ← Zustand: markdown, micron, dirty state
|
|
pagesStore.ts ← Zustand: pages list, fetch/delete
|
|
hooks/
|
|
useConversion.ts ← debounced POST /api/convert
|
|
useGraph.ts ← GET /api/graph
|
|
useUnsavedGuard.ts ← beforeunload + dirty guard
|
|
```
|