/* Meriç Seramik — Production App Entry (no tweaks panel) */

function App() {
  const [route, setRoute] = useState(parseHash);
  const quote = useQuoteStore();
  const [toastData, setToastData] = useState(null);
  const [waMsg, setWaMsg] = useState(null);
  const [cookie, setCookie] = useState(() => !localStorage.getItem("ms_cookie"));
  const [menu, setMenu] = useState(false);

  useEffect(() => {
    if (!location.hash || location.hash === "#" || location.hash === "#/") {
      history.replaceState(null, "", hrefFor(route.lang, "home"));
    }
    const onHash = () => {
      const r = parseHash();
      setRoute(prev => {
        if (prev.page !== r.page || prev.slug !== r.slug || prev.lang !== r.lang) window.scrollTo(0, 0);
        return r;
      });
    };
    window.addEventListener("hashchange", onHash);
    return () => window.removeEventListener("hashchange", onHash);
  }, []);
  useEffect(() => { localStorage.setItem("ms_lang", route.lang); }, [route.lang]);

  const t = useCallback((k, v) => translate(route.lang, k, v), [route.lang]);
  useSeo(route, t);

  const ctx = {
    route, t, quote, specVariant: "panel", menu, setMenu,
    toast: (text, link) => setToastData({ text, link, k: Date.now() }),
    openWa: m => setWaMsg(m),
    openCookies: () => setCookie(true)
  };

  const pages = {
    home: HomePage,
    products: CatalogPage,
    product: ProductPage,
    category: CategoryPage,
    inspiration: InspirationPage,
    about: AboutPage,
    contact: ContactPage,
    quote: QuotePage,
    privacy: PrivacyPage,
    admin: AdminPage,
    notfound: NotFound
  };
  const Page = pages[route.page] || NotFound;

  return (
    <Ctx.Provider value={ctx}>
      <a className="skip" href="#main">{t("skip")}</a>
      <LangSuggest />
      <Header />
      <main id="main" key={route.page + route.slug + route.lang}>
        <Page />
      </main>
      <Footer />
      {!cookie && <WaFab />}
      {cookie && <Cookie onDone={v => { localStorage.setItem("ms_cookie", v); setCookie(false); }} />}
      <BottomNav />
      {toastData && <Toast key={toastData.k} data={toastData} onClose={() => setToastData(null)} />}
      {waMsg && <WaModal msg={waMsg} onClose={() => setWaMsg(null)} />}
    </Ctx.Provider>
  );
}

ReactDOM.createRoot(document.getElementById("root")).render(<App />);
