// ===================== Projetos page app ===================== const { useState, useEffect, useRef } = React; function Check(){ return (); } function PReveal({ children, className='', delay=0 }){ const ref = useRef(null); const [s,setS]=useState(false); useEffect(()=>{ const io=new IntersectionObserver(es=>es.forEach(e=>{ if(e.isIntersecting){ setS(true); io.disconnect(); } }),{ threshold:0.12, rootMargin:'0px 0px -6% 0px' }); if(ref.current) io.observe(ref.current); return ()=>io.disconnect(); },[]); return
{children}
; } const PH = (html)=>({ dangerouslySetInnerHTML:{ __html:html } }); function PNav({ lang, setLang, C }){ const [sc,setSc]=useState(false); useEffect(()=>{ const on=()=>setSc(window.scrollY>40); on(); window.addEventListener('scroll',on,{passive:true}); return ()=>window.removeEventListener('scroll',on); },[]); return ( ); } function BrowserShot({ src, url='app.tutu.com.br' }){ return (
{url}
Tutu
); } function Projetos({ C }){ const i = C.intro; return (
{/* intro */}
{i.index}

{i.tags.map((t,k)=>({t}))}

{i.meta.map((m,k)=>(
{m.k}
{m.v}
))}
{/* showcase dashboard */}
{C.showcase.eyebrow}

{C.showcase.h}

{C.showcase.p}

{/* feature rows */}
{C.feats.map((f,k)=>(
{f.num}

{f.p}

    {f.points.map((p,j)=>(
  • {p}
  • ))}
{f.framed ? :
}
))}
{/* whatsapp AI */}
{C.whats.num}

{C.whats.p1}

{C.whats.p2}

    {C.whats.points.map((p,j)=>(
  • {p}
  • ))}
{C.whats.chips.map((c,j)=>({c}))}
Tutu no WhatsApp
{/* amigos / split */}
{C.amigos.num}

{C.amigos.p}

    {C.amigos.points.map((p,j)=>(
  • {p}
  • ))}
{/* gallery */}
{C.gallery.eyebrow}

{C.gallery.h}

{C.gallery.items.map((g,k)=>( {g.t}
{g.t}/ {g.n}
))}
{/* next / cta */}
{C.next.eyebrow}

← {C.next.back} {C.next.contact} →
); } function PApp(){ const [lang,setLang]=useState(()=> localStorage.getItem('pc_lang') || 'pt'); useEffect(()=>{ localStorage.setItem('pc_lang',lang); document.documentElement.lang = lang==='pt'?'pt-BR':'en'; },[lang]); const C = window.PROJ[lang]; return (); } ReactDOM.createRoot(document.getElementById('root')).render();