// Routeur applicatif minimaliste — hashrouter pour permettre les liens partageables
const { TopBar, ToastProvider } = window.UI;
const { ScreenListeRecettes, ScreenEditRecette, ScreenFaconnages, ScreenIncorporations, ScreenArticles } = window.Screens;
function parseHash() {
const h = window.location.hash.replace(/^#/, "");
if (!h || h === "/") return { name: "recettes" };
const parts = h.split("/").filter(Boolean);
if (parts[0] === "recette" && parts[1]) return { name: "recette", id: parts[1] };
if (parts[0] === "faconnages") return { name: "faconnages" };
if (parts[0] === "incorporations") return { name: "incorporations" };
if (parts[0] === "articles") return { name: "articles" };
return { name: "recettes" };
}
function routeToHash(route) {
if (route.name === "recettes") return "#/";
if (route.name === "recette") return `#/recette/${route.id}`;
return `#/${route.name}`;
}
function App() {
const [route, setRoute] = React.useState(parseHash());
React.useEffect(() => {
const onHash = () => setRoute(parseHash());
window.addEventListener("hashchange", onHash);
return () => window.removeEventListener("hashchange", onHash);
}, []);
const goRoute = (r) => {
const h = routeToHash(r);
if (window.location.hash !== h) window.location.hash = h;
else setRoute(r);
};
let screen = null;
if (route.name === "recettes") screen = ;
else if (route.name === "recette") screen = ;
else if (route.name === "faconnages") screen = ;
else if (route.name === "incorporations") screen = ;
else if (route.name === "articles") screen = ;
return (
{screen}
);
}
ReactDOM.createRoot(document.getElementById("root")).render();