/* EnableUnion — app shell, routing, tweaks */ const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "lang": "fr", "density": "regular" }/*EDITMODE-END*/; function App() { const route = useRoute(); const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS); const lang = tweaks.lang === "en" ? "en" : "fr"; const t = window.I18N[lang]; // persist language to localStorage too, so the cookie banner copy stays right React.useEffect(() => { try { localStorage.setItem("eu_lang", lang); } catch (e) {} document.documentElement.lang = lang; document.documentElement.setAttribute("data-density", tweaks.density); document.title = lang === "fr" ? "EnableUnion — Outiller l'individu, fortifier le collectif" : "EnableUnion — Equip the individual, strengthen the whole"; }, [lang, tweaks.density]); const setLang = (l) => setTweak("lang", l); let page; switch (route) { case "/about": page = ; break; case "/products": page = ; break; case "/contact": page = ; break; case "/legal": page = ; break; case "/privacy": page = ; break; case "/terms": page = ; break; case "/cookies": page = ; break; case "/": default: page = ; } // re-key so each route gets fade-in return (
{page}
setTweak("lang", v)} options={[ { value: "fr", label: "Français" }, { value: "en", label: "English" }, ]} /> setTweak("density", v)} options={[ { value: "regular", label: lang === "fr" ? "Aéré" : "Spacious" }, { value: "compact", label: lang === "fr" ? "Compact" : "Compact" }, ]} />
); } const root = ReactDOM.createRoot(document.getElementById("root")); root.render();