// Main app — routes between screens, top bar with breadcrumb, tweaks panel const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "#0b5cab", "theme": "light", "density": "comfortable", "demoVolume": "medium" }/*EDITMODE-END*/; function App() { const [view, setView] = React.useState("dashboard"); const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // Apply theme + accent as CSS variables React.useEffect(() => { const r = document.documentElement; r.style.setProperty("--accent", t.accent); if (t.theme === "dark") { r.dataset.theme = "dark"; } else { r.dataset.theme = "light"; } }, [t.accent, t.theme]); const dense = t.density === "compact"; const titles = { dashboard: ["Dashboard"], compose: ["Create", "Compose"], recipients: ["Create", "Recipients"], tracker: ["Manage", "Tracker"], inbox: ["Manage", "Inbox"], reviews: ["Manage", "Internal review"], analytics: ["Insight", "Analytics"], audit: ["Insight", "Audit log"], settings: ["Insight", "Settings"] }; const crumb = titles[view] || ["Dashboard"]; return (
{crumb.map((c, i) => ( {i > 0 && /} {c} ))}
All systems operational · v0.4.2
{view === "dashboard" && } {view === "compose" && } {view === "recipients" && } {view === "tracker" && } {view === "inbox" && } {view === "reviews" && } {view === "analytics" && } {view === "audit" && } {view === "settings" && }
setTweak("accent", v)} /> setTweak("theme", v)} /> setTweak("density", v)} /> setTweak("demoVolume", v)} />
); } ReactDOM.createRoot(document.getElementById("root")).render();