perf: route ecommerce utility styles on demand

This commit is contained in:
2026-06-05 19:45:56 +08:00
parent c42c8d4f7b
commit 3d4001353d
5 changed files with 34 additions and 1 deletions
+30
View File
@@ -51,6 +51,7 @@ const AvatarConsolePage = lazy(() => import("./features/digital-human/AvatarCons
const DigitalHumanPage = lazy(() => import("./features/digital-human/DigitalHumanPage"));
const DialogGeneratorPage = lazy(() => import("./features/dialog-generator/DialogGeneratorPage"));
const EcommercePage = lazy(() => import("./features/ecommerce/EcommercePage"));
const EcommerceTemplatesPage = lazy(() => import("./features/ecommerce/EcommerceTemplatesPage"));
const HomePage = lazy(() => import("./features/home/HomePage"));
const ImageWorkbenchPage = lazy(() => import("./features/image-workbench/ImageWorkbenchPage"));
const MorePage = lazy(() => import("./features/more/MorePage"));
@@ -61,6 +62,7 @@ const ResolutionUpscalePage = lazy(() => import("./features/resolution-upscale/R
const WatermarkRemovalPage = lazy(() => import("./features/watermark-removal/WatermarkRemovalPage"));
const SubtitleRemovalPage = lazy(() => import("./features/subtitle-removal/SubtitleRemovalPage"));
const ScriptTokensPage = lazy(() => import("./features/script-tokens/ScriptTokensPage"));
const SizeTemplatePage = lazy(() => import("./features/size-template/SizeTemplatePage"));
const TokenUsagePage = lazy(() => import("./features/script-tokens/TokenUsagePage"));
const WorkbenchPage = lazy(() => import("./features/workbench/WorkbenchPage"));
import type { WorkbenchResultActionPayload } from "./features/workbench/WorkbenchPage";
@@ -106,6 +108,8 @@ const VIEW_KEYS = new Set<WebViewKey>([
"assets",
"ecommerceHub",
"ecommerce",
"ecommerceTemplates",
"sizeTemplate",
"scriptTokens",
"tokenUsage",
"imageWorkbench",
@@ -137,6 +141,8 @@ const LEGACY_PAGE_STYLE_VIEWS = new Set<WebViewKey>([
"assets",
"ecommerce",
"ecommerceHub",
"ecommerceTemplates",
"sizeTemplate",
"digitalHuman",
"characterMix",
"more",
@@ -1176,6 +1182,30 @@ function App() {
case "ecommerce":
case "ecommerceHub":
return null;
case "ecommerceTemplates":
return (
<EcommerceTemplatesPage
projects={projects}
onOpenMore={() => handleSetView("more")}
onOpenEcommerce={() => handleSetView("ecommerce")}
onSelectTemplate={(template) => {
setPendingEcommerceTemplate(template);
handleSetView("ecommerce");
}}
onStartCreate={handleStartTemplateCanvasCreate}
onOpenProject={handleOpenProject}
onDeleteProject={handleDeleteProject}
/>
);
case "sizeTemplate":
return (
<SizeTemplatePage
isAuthenticated={Boolean(session)}
onOpenMore={() => handleSetView("more")}
onOpenEcommerce={() => handleSetView("ecommerce")}
onSelectView={handleSetView}
/>
);
case "digitalHuman":
return (
<DigitalHumanPage