import { Eye, Play, Save } from "lucide-react"; import { BuildsView } from "../../features/builds/BuildsView"; import { OverlayPreview, OverlaySettings } from "../../features/overlay/OverlayViews"; import { ScanView } from "../../features/scan/ScanView"; import { TriageView } from "../../features/triage/TriageView"; import { AppMetrics, AppShell, AppSidebar, AppTopbar } from "../../features/layout"; import type { AppPageLayoutProps } from "./types"; import { useAppPageLayoutModel } from "./hooks/useAppPageLayoutModel"; export function AppPageLayout({ controller }: AppPageLayoutProps) { const { activeView, setActiveView, isOverlay, isScanning, snapshot, captureSources, selectedSourceId, setSelectedSourceId, latestCapture, topbarStatus, bridgeReady, canExportGood, canShowOverlay, metricCards, refreshCaptureSources, captureSelectedSource, exportCurrentGood, loadStoredArtifactSnapshot, showOverlay, } = controller; const { renderNavigation, handleDemoScan } = useAppPageLayoutModel({ controller }); if (isOverlay) { return ; } return ( } children={ <> } overlayIcon={} demoIcon={} /> {activeView !== "diagnose" && } {(activeView === "scan" || activeView === "diagnose") && ( )} {activeView === "triage" && } {activeView === "builds" && } {activeView === "overlay" && } } /> ); }