chore: initialize repository baseline
Import the existing Electron + React + TypeScript app as the version-control baseline before the scanner rework (C# input/capture sidecar, resolution-anchored layout profiles, OCR preprocessing, eval harness, rescan-merge, GOOD interop). Housekeeping in this commit: - Remove orphaned temp_inputhelper_block.ts (duplicate of the input-helper script). - Ignore .claude/scheduled_tasks.lock local session state. - Add .gitattributes to normalize line endings (LF in repo). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
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 <OverlayPreview snapshot={snapshot} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<AppShell
|
||||
sidebar={<AppSidebar activeView={activeView} items={renderNavigation} onSelect={setActiveView} />}
|
||||
children={
|
||||
<>
|
||||
<AppTopbar
|
||||
topbarStatus={topbarStatus}
|
||||
canExportGood={canExportGood}
|
||||
canShowOverlay={canShowOverlay}
|
||||
isScanning={isScanning}
|
||||
artifactCount={snapshot.artifacts.length}
|
||||
onExportGood={exportCurrentGood}
|
||||
onShowOverlay={showOverlay}
|
||||
onDemoScan={handleDemoScan}
|
||||
exportIcon={<Save size={16} />}
|
||||
overlayIcon={<Eye size={16} />}
|
||||
demoIcon={<Play size={16} />}
|
||||
/>
|
||||
<AppMetrics metricCards={metricCards} />
|
||||
{activeView === "scan" && (
|
||||
<ScanView
|
||||
isScanning={isScanning}
|
||||
snapshot={snapshot}
|
||||
captureSources={captureSources}
|
||||
selectedSourceId={selectedSourceId}
|
||||
setSelectedSourceId={setSelectedSourceId}
|
||||
latestCapture={latestCapture}
|
||||
captureStatus={topbarStatus}
|
||||
refreshCaptureSources={refreshCaptureSources}
|
||||
captureSelectedSource={captureSelectedSource}
|
||||
bridgeReady={bridgeReady}
|
||||
onStoredArtifactsChanged={loadStoredArtifactSnapshot}
|
||||
/>
|
||||
)}
|
||||
{activeView === "triage" && <TriageView snapshot={snapshot} />}
|
||||
{activeView === "builds" && <BuildsView snapshot={snapshot} />}
|
||||
{activeView === "overlay" && <OverlaySettings canShowOverlay={canShowOverlay} onShowOverlay={showOverlay} />}
|
||||
</>
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user