// Router compartilhado. Em modo caminho (`window.__PATH_MODE`, usado nas páginas // geradas para o site) as rotas são /receitas/, /artigo//. Sem essa flag — // arquivo único aberto do disco — o router usa hash (#/receitas). const PATH_MODE=!!window.__PATH_MODE; const SECTIONS=['tipos','socorros','escola','criancas','receitas','projeto','sobre','busca','jogo','home-hero']; function parseLoc(){ if(PATH_MODE){ const segs=location.pathname.replace(/^\/+|\/+$/g,'').split('/').filter(s=>s&&s!=='index.html'); if(!segs.length) return ['home',null]; if(segs[0]==='artigo') return ['artigo',segs[1]||'escola-hipo']; return [SECTIONS.indexOf(segs[0])>=0?segs[0]:'home',null]; } const h=(location.hash||'').replace(/^#\/?/,''); if(!h) return ['home',null]; const [r,id]=h.split('/'); return [r||'home',id||null]; } function urlFor(route,postId){ if(PATH_MODE) return route==='home'?'/':route==='artigo'?'/artigo/'+postId+'/':'/'+route+'/'; return '#/'+(route==='home'?'':route==='artigo'?'artigo/'+postId:route); } function App(){ const init=parseLoc(); const [route,setRoute]=React.useState(init[0]); const [postId,setPostId]=React.useState(init[1]||'escola-hipo'); const [query,setQuery]=React.useState(''); React.useEffect(()=>{window.scrollTo(0,0)},[route,postId]); const first=React.useRef(true); React.useEffect(()=>{ const u=urlFor(route,postId); const cur=PATH_MODE?location.pathname:location.hash; if(cur===u) {first.current=false;return} // a primeira renderização só normaliza a URL; as seguintes criam histórico, // para os botões voltar/avançar do navegador funcionarem try{first.current?history.replaceState(null,'',u):history.pushState(null,'',u)} catch(e){if(!PATH_MODE)location.hash=u} first.current=false; },[route,postId]); React.useEffect(()=>{ const onNav=()=>{const [r,id]=parseLoc();setRoute(r);if(id)setPostId(id)}; window.addEventListener('popstate',onNav); window.addEventListener('hashchange',onNav); return()=>{window.removeEventListener('popstate',onNav);window.removeEventListener('hashchange',onNav)}; },[]); const go=(r,id,q)=>{if(id)setPostId(id);if(q!==undefined)setQuery(q||'');setRoute(r||'home')}; if(route==='tipos') return ; if(route==='socorros') return ; if(route==='artigo') return
; if(route==='sobre') return ; if(route==='jogo') return ; if(route==='projeto') return ; if(route==='escola'||route==='criancas'||route==='receitas'||route==='busca') return ; if(route==='home-hero') return ; return ; } ReactDOM.createRoot(document.getElementById('root')).render();