const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "gold", "glow": true, "mesh": true }/*EDITMODE-END*/; function Tweaks({ open, onClose, state, setState }) { if (!open) return null; const swatches = [ { id:"navy", c:"#1B3A6B" }, { id:"gold", c:"#C9A84C" }, { id:"green", c:"#4d9379" }, { id:"graphite", c:"#6c7a8e" }, { id:"offwhite", c:"#ecead8" }, ]; const update = (k, v) => { const next = { ...state, [k]: v }; setState(next); window.parent.postMessage({type:"__edit_mode_set_keys", edits:{[k]:v}}, "*"); }; return (
Tweaks
Cor de acento
{swatches.map(s => ( update("accent", s.id)}/> ))}
Glow no CTA final update("glow", !state.glow)}>
Mesh no Hero update("mesh", !state.mesh)}>
); } function App() { const [state, setState] = React.useState(TWEAK_DEFAULTS); const [tweaksOpen, setTweaksOpen] = React.useState(false); React.useEffect(() => { const onMsg = (e) => { if (!e.data) return; if (e.data.type === "__activate_edit_mode") setTweaksOpen(true); if (e.data.type === "__deactivate_edit_mode") setTweaksOpen(false); }; window.addEventListener("message", onMsg); window.parent.postMessage({type:"__edit_mode_available"}, "*"); return () => window.removeEventListener("message", onMsg); }, []); React.useEffect(() => { document.documentElement.setAttribute("data-accent", state.accent); }, [state.accent]); const closeTweaks = () => { setTweaksOpen(false); window.parent.postMessage({type:"__edit_mode_dismissed"}, "*"); }; return ( <>