/* global React, ReactDOM, AppShell, FraudConsole, ScaConsole, OrchConsole, SettleConsole, DisputeFlow, CommandPalette, SignerOverlay, AuditorWatermark */ function App() { const [active, setActive] = React.useState(() => localStorage.getItem("ak.surface") || "fraud"); const [tier, setTier] = React.useState("enterprise"); const [role, setRole] = React.useState("operator"); const [cmdOpen, setCmdOpen] = React.useState(false); const [signerOpen, setSignerOpen] = React.useState(false); React.useEffect(() => { localStorage.setItem("ak.surface", active); }, [active]); // expose signer overlay opener for command palette React.useEffect(() => { window.__openSignerOverlay = () => setSignerOpen(true); }, []); // keyboard nav + ⌘K React.useEffect(() => { const onKey = e => { if (e.target.matches("input,textarea,select")) { if (e.key === "Escape") { e.target.blur(); setCmdOpen(false); } return; } // ⌘K or Ctrl+K if ((e.metaKey || e.ctrlKey) && e.key === "k") { e.preventDefault(); setCmdOpen(o => !o); return; } if (e.key === "Escape") { setCmdOpen(false); setSignerOpen(false); return; } const map = { "1": "fraud", "2": "sca", "3": "orch", "4": "settle", "5": "flow" }; if (map[e.key] && !cmdOpen) setActive(map[e.key]); }; window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [cmdOpen]); const navAndClose = id => { setActive(id); setCmdOpen(false); }; return ( setCmdOpen(true)} onSignerClick={() => setSignerOpen(true)} > {active === "fraud" && } {active === "sca" && } {active === "orch" && } {active === "settle" && } {active === "flow" && } {/* overlays */} setCmdOpen(false)} onNav={navAndClose}/> setSignerOpen(false)}/> {role === "auditor" && } ); } ReactDOM.createRoot(document.getElementById("root")).render();