Refactor App.tsx from god component to context-based architecture
All checks were successful
CI / check (push) Successful in 1m18s
CI / build-image (push) Has been skipped

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lukas
2026-03-19 14:19:58 +01:00
parent 6584d8d064
commit 86768842ff
35 changed files with 1065 additions and 795 deletions

View File

@@ -1,17 +1,12 @@
import type { BulkImportState } from "../hooks/use-bulk-import.js";
import { useBulkImportContext } from "../contexts/bulk-import-context.js";
import { useSidePanelContext } from "../contexts/side-panel-context.js";
import { Toast } from "./toast.js";
interface BulkImportToastsProps {
state: BulkImportState;
visible: boolean;
onReset: () => void;
}
export function BulkImportToasts() {
const { state, reset } = useBulkImportContext();
const { bulkImportMode, isRightPanelCollapsed } = useSidePanelContext();
const visible = !bulkImportMode || isRightPanelCollapsed;
export function BulkImportToasts({
state,
visible,
onReset,
}: Readonly<BulkImportToastsProps>) {
if (!visible) return null;
if (state.status === "loading") {
@@ -30,7 +25,7 @@ export function BulkImportToasts({
return (
<Toast
message="All sources loaded"
onDismiss={onReset}
onDismiss={reset}
autoDismissMs={3000}
/>
);
@@ -40,7 +35,7 @@ export function BulkImportToasts({
return (
<Toast
message={`Loaded ${state.completed}/${state.total} sources (${state.failed} failed)`}
onDismiss={onReset}
onDismiss={reset}
/>
);
}