// Router compartilhado. Em modo caminho (`window.__PATH_MODE`, usado nas páginas
// geradas para o site) as rotas são /receitas/, /artigo/<id>/. 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 <TypesGuide go={go}/>;
  if(route==='socorros') return <FirstAid go={go}/>;
  if(route==='artigo') return <Article id={postId} go={go}/>;
  if(route==='sobre') return <Sobre go={go}/>;
  if(route==='jogo') return <Jogo go={go}/>;
  if(route==='projeto') return <Projeto go={go}/>;
  if(route==='escola'||route==='criancas'||route==='receitas'||route==='busca') return <Listing cat={route} initialQuery={query} go={go}/>;
  if(route==='home-hero') return <Home go={go}/>;
  return <HomeFeed go={go}/>;
}
ReactDOM.createRoot(document.getElementById('root')).render(<App/>);
