function App() { const [tweaks, setTweaks] = useState(() => ({ ...window.TWEAK_DEFAULTS })); const [tweaksOpen, setTweaksOpen] = useState(false); const [favCount, setFavCount] = useState(() => { try { return JSON.parse(localStorage.getItem("cal:favs") || "[]").length; } catch { return 0; } }); // apply tweaks to css useEffect(() => { applyTweaks(tweaks); }, [tweaks]); // favs sync useEffect(() => { const h = (e) => setFavCount((e.detail || []).length); window.addEventListener("favsChanged", h); return () => window.removeEventListener("favsChanged", h); }, []); // host edit mode handshake useEffect(() => { const onMsg = (e) => { const d = e.data || {}; if (d.type === "__activate_edit_mode") setTweaksOpen(true); if (d.type === "__deactivate_edit_mode") setTweaksOpen(false); }; window.addEventListener("message", onMsg); try { window.parent.postMessage({ type: "__edit_mode_available" }, "*"); } catch {} return () => window.removeEventListener("message", onMsg); }, []); const [activeStory, setActiveStory] = useState(null); const toggleDark = () => setTweaks(t => ({ ...t, dark: !t.dark })); return ( <>