// ATOM Center — Main App
const App = () => {
// Hash-based routing
const getPageFromHash = () => {
const h = (location.hash || "#home").replace("#", "").split("?")[0];
const valid = ["home", "about", "programs", "enterprise", "blog", "contact"];
return valid.includes(h) ? h : "home";
};
const [page, setPage] = useState(getPageFromHash());
const [lang, setLang] = useState(() => localStorage.getItem("atom-lang") || "fr");
useEffect(() => {
document.body.dataset.density = "regular";
document.body.dataset.theme = "light";
}, []);
useEffect(() => { localStorage.setItem("atom-lang", lang); }, [lang]);
useEffect(() => { document.documentElement.lang = lang; }, [lang]);
useEffect(() => {
const onHash = () => { setPage(getPageFromHash()); window.scrollTo(0, 0); };
window.addEventListener("hashchange", onHash);
return () => window.removeEventListener("hashchange", onHash);
}, []);
const navigate = (p) => {
location.hash = "#" + p;
setPage(p);
window.scrollTo({ top: 0, behavior: "instant" });
};
const PageComponent = {
home: HomePage, about: AboutPage, programs: ProgramsPage,
enterprise: EnterprisePage, blog: BlogPage, contact: ContactPage,
}[page] || HomePage;
return (
<>