/* === App shell + Router === */ const { useState: useStateApp, useEffect: useEffectApp } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "palette": "warm", "typo": "classic", "heroRecruitVariant": "callout-band", "employerVariant": "dual-match", "employerLeadVariant": "emphasis-em", "theme": "light" }/*EDITMODE-END*/; const BRAND_LOGO_SRC = "images/physiokur-logo-clean.png"; const NAV = [ { href: "#/", label: "Start" }, { href: "#/leistungen", label: "Leistungen" }, { href: "#/team", label: "Über uns" }, { href: "#/patienten", label: "Für Patienten" }, { href: "/app-reiter/", label: "Trainings-App" }, { href: "#/karriere", label: "Karriere" }, { href: "#/kontakt", label: "Kontakt" }, ]; function useHashRoute() { const [hash, setHash] = useStateApp(window.location.hash || "#/"); useEffectApp(() => { const onHash = () => { setHash(window.location.hash || "#/"); window.scrollTo({ top: 0, behavior: "instant" in window ? "instant" : "auto" }); }; window.addEventListener("hashchange", onHash); return () => window.removeEventListener("hashchange", onHash); }, []); return hash; } const THEME_ICONS = { sun: ( ), moon: ( ), }; function Nav({ route, theme, onToggleTheme }) { const [open, setOpen] = useStateApp(false); const isDark = theme === "dark"; return ( ); } function Footer() { return ( ); } function App() { const route = useHashRoute(); const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); useEffectApp(() => { document.documentElement.dataset.palette = t.palette; document.documentElement.dataset.typo = t.typo; document.documentElement.dataset.theme = t.theme; }, [t.palette, t.typo, t.theme]); let Page; switch (route) { case "#/leistungen": Page = ; break; case "#/team": Page = ; break; case "#/patienten": Page = ; break; case "#/karriere": Page = ; break; case "#/kontakt": Page = ; break; default: Page = ; } return ( <>