/* @file: hash-router.jsx — Exposes: window.__app.Router, window.__app.useRoute */
(() => {
  const RouteContext = React.createContext(null);

  function Router({ children }) {
    if (!window.__app?.useHashRoute) {
      throw new Error(
        'Router: window.__app.useHashRoute is not defined. ' +
        'Ensure hooks/useHashRoute.js is loaded before hash-router.jsx'
      );
    }

    const route = window.__app.useHashRoute();

    return (
      <RouteContext.Provider value={route}>
        {children}
      </RouteContext.Provider>
    );
  }

  function useRoute() {
    const ctx = React.useContext(RouteContext);
    if (!ctx) {
      throw new Error('useRoute must be called inside <Router>');
    }
    return ctx;
  }

  window.__app = window.__app || {};
  window.__app.Router = Router;
  window.__app.useRoute = useRoute;
})();
