feat: add find page, breadcrumb components and canvas workbench updates

This commit is contained in:
2026-08-30 14:38:09 +08:00
parent ee3b7745b7
commit bceb3a1542
21 changed files with 2239 additions and 73 deletions
+16 -3
View File
@@ -1,6 +1,7 @@
import { useEffect, useLayoutEffect, useState } from 'react';
import type { ThemeMode } from './components/AppSettingsWindow';
import CanvasStudio from './pages/CanvasStudio';
import FindPage from './pages/FindPage';
import HelpPage from './pages/HelpPage';
import OrdersPage from './pages/OrdersPage';
import TemplateHome from './pages/TemplateHome';
@@ -8,7 +9,7 @@ import TestWorkbench from './pages/TestWorkbench';
import { CanvasDocument, WordcloudReplaceSession, WordcloudStickerPayload } from './types';
import { createDefaultDocument } from './lib/canvasDocument';
type AppPage = 'home' | 'canvas' | 'wordcloud' | 'orders' | 'help';
type AppPage = 'home' | 'canvas' | 'wordcloud' | 'orders' | 'find' | 'help';
const getStoredTheme = (): ThemeMode => {
const stored = window.localStorage.getItem('wordcloud-theme');
@@ -54,6 +55,7 @@ export default function App() {
systemTheme={systemTheme}
onThemeModeChange={setThemeMode}
onOpenCanvas={() => setPage('canvas')}
onOpenHome={() => setPage('home')}
onOpenHelp={openHelp}
replaceSession={pendingReplaceSession}
onConsumeReplaceSession={() => setPendingReplaceSession(null)}
@@ -100,6 +102,7 @@ export default function App() {
onOpenCanvas={() => setPage('canvas')}
onOpenWordcloud={() => setPage('wordcloud')}
onOpenOrders={() => setPage('orders')}
onOpenFind={() => setPage('find')}
/>
);
}
@@ -115,6 +118,17 @@ export default function App() {
);
}
if (page === 'find') {
return (
<FindPage
themeMode={themeMode}
systemTheme={systemTheme}
onThemeModeChange={setThemeMode}
onOpenHome={() => setPage('home')}
/>
);
}
return (
<TemplateHome
themeMode={themeMode}
@@ -128,9 +142,8 @@ export default function App() {
setInitialDocument(template.document);
setPage('canvas');
}}
onOpenCanvas={() => setPage('canvas')}
onOpenWordcloud={() => setPage('wordcloud')}
onOpenOrders={() => setPage('orders')}
onOpenFind={() => setPage('find')}
onOpenHelp={openHelp}
/>
);