diff --git a/docs/plans/busca-global-layout-resultados.md b/docs/plans/busca-global-layout-resultados.md index 96a8a3fc..13d68d69 100644 --- a/docs/plans/busca-global-layout-resultados.md +++ b/docs/plans/busca-global-layout-resultados.md @@ -1,7 +1,7 @@ # Busca global — layout dos resultados (grid + cap de viewport) -Status: rascunho -Atualizado em: 2026-07-29 +Status: entregue (2026-07-30) +Atualizado em: 2026-07-30 — as-built: `HomeSearchResultsLayout` (grid 1/2/3 col + `HomeSearchHitBudgetContext`); cap v1 constante por breakpoint (`HOME_SEARCH_HIT_BUDGET` 8/12/15) via `allocateHitBudget` com prioridade Municípios; grupos B48–B53 fatiam via `useHomeSearchHitLimit`. Item do roadmap: [docs/roadmap.md](../roadmap.md) (Trilha B, item B54 — busca global) Impeccable: B — layout responsivo da região de resultados B47 Appetite: ~0,5–0,75 dia eng; CSS grid + política de cap; sem provider novo diff --git a/src/app/(campaign)/campanha/(app)/page.tsx b/src/app/(campaign)/campanha/(app)/page.tsx index 40f8e953..58b5e968 100644 --- a/src/app/(campaign)/campanha/(app)/page.tsx +++ b/src/app/(campaign)/campanha/(app)/page.tsx @@ -11,6 +11,7 @@ import { HomeSearchAdvisorGroup } from '@/components/campaign/dashboard/HomeSear import { HomeSearchDemandGroup } from '@/components/campaign/dashboard/HomeSearchDemandGroup' import { HomeSearchLeadershipGroup } from '@/components/campaign/dashboard/HomeSearchLeadershipGroup' import { HomeSearchMunicipalityGroup } from '@/components/campaign/dashboard/HomeSearchMunicipalityGroup' +import { HomeSearchResultsLayout } from '@/components/campaign/dashboard/HomeSearchResultsLayout' import { HomeSearchResultsShell } from '@/components/campaign/dashboard/HomeSearchResultsShell' import { HomeSearchStateDeputyGroup } from '@/components/campaign/dashboard/HomeSearchStateDeputyGroup' import { CampaignPageShell } from '@/components/campaign/shell/CampaignPageShell' @@ -50,12 +51,14 @@ export default async function CampaignHomePage() { actions={actions} searchResults={ - - - - - - + + + + + + + + } summarySlot={summarySlot} diff --git a/src/components/campaign/dashboard/HomeSearchActivityGroup.tsx b/src/components/campaign/dashboard/HomeSearchActivityGroup.tsx index c5534039..4c37c456 100644 --- a/src/components/campaign/dashboard/HomeSearchActivityGroup.tsx +++ b/src/components/campaign/dashboard/HomeSearchActivityGroup.tsx @@ -1,23 +1,28 @@ 'use client' +import { useHomeSearchHitLimit } from '@/components/campaign/dashboard/HomeSearchHitBudgetContext' import { HomeSearchHitRow } from '@/components/campaign/dashboard/HomeSearchHitRow' import { useHomeSearchResults } from '@/components/campaign/dashboard/HomeSearchResultsContext' import { homeSearchActivityGroupHasHits } from '@/lib/campaignHomeSearchHits' +import { sliceHomeSearchHits } from '@/lib/homeSearchHitBudget' import { HOME_SEARCH_GROUP_HEADING_CLASS, HOME_SEARCH_GROUP_LIST_CLASS } from '@/lib/homeSearchUi' export const HomeSearchActivityGroup = () => { const { results } = useHomeSearchResults() + const hitLimit = useHomeSearchHitLimit('activities') if (results.status !== 'success') return null if (!homeSearchActivityGroupHasHits(results.data)) return null const { activities } = results.data + const visibleActivities = sliceHomeSearchHits(activities, hitLimit) + if (visibleActivities.length === 0) return null return (

Atividades