# Plan — 032: Performance Homepage ## Visão Técnica A estratégia central é **inverter o fluxo de dados**: em vez de cada componente buscar seus próprios dados (model-per-component), o `HomePage` orquestra todos os fetches em paralelo e distribui via props. Isso elimina o waterfall e permite paralelizar corretamente. ``` ANTES (serial): HomePage mount → fetch config → render HomeScrollScene → fetch properties → fetch agents (AgentsCarousel) DEPOIS (paralelo): HomePage mount → Promise.all([config, properties, agents]) → render com dados prontos ``` --- ## Arquitetura das Mudanças ### 1. `HomePage.tsx` — Orchestrator - Gerencia 3 estados: `config`, `featuredProperties`, `agents` - `Promise.all` no único `useEffect` - Injeta `` via efeito secundário quando `backgroundImage` resolve - Cache de `config` em `sessionStorage` com TTL 5 min - Passa `properties`, `loadingProperties`, `agents`, `loadingAgents` como props para baixo ### 2. `HomeScrollScene.tsx` — Apresentação - Remove `useEffect` de `getFeaturedProperties` e estado interno de `properties` - Recebe `properties: Property[]` e `loadingProperties: boolean` via props - Mantém `isLight` (necessário para estilos internos) - Remove `