fix(catalogue): keep filtered investment results separate from educational guides

This commit is contained in:
2026-10-28 21:04:10 +02:00
parent 6520d303f7
commit 54d1b2a543
7 changed files with 113 additions and 8 deletions
@@ -0,0 +1,15 @@
import { Link } from '@inertiajs/react';
import type { EducationalArticle } from './educational-article-card';
/** Guides remain available on request; they are not matching investment results. */
export default function CatalogueGuideLinks({ articles }: { articles: EducationalArticle[] }) {
if (!articles.length) return null;
return <details className="rounded border p-3">
<summary className="cursor-pointer font-medium">Guias do sector — apoio opcional</summary>
<ul className="mt-3 space-y-2">
{articles.map((article) => <li key={article.href}>
<Link className="underline" href={article.href}>Ler guia: {article.title}</Link>
</li>)}
</ul>
</details>;
}
+11 -6
View File
@@ -1,4 +1,4 @@
import EducationalGuides from '@/components/educational-guides';
import CatalogueGuideLinks from '@/components/catalogue-guide-links';
import OpportunityCorridorGroups, { type CorridorGroup } from '@/components/opportunity-corridor-groups';
import { searchTerritoryHref } from '@/lib/search-territory';
import type { EducationalArticle } from '@/components/educational-article-card';
@@ -381,6 +381,11 @@ export default function Catalogue({
);
}}
/>
<h2 className="text-xl font-semibold">
Oportunidades publicadas
{filters.sector && ` · ${references.sectors.find((sector) => sector.slug === filters.sector)?.name ?? filters.sector}`}
{territorySelection.length > 0 && ` · ${territorySelection.map((territory) => territory.name).join(' / ')}`}
</h2>
<SearchState
loading={searchLoading}
error={searchError}
@@ -423,7 +428,7 @@ export default function Catalogue({
}));
}}
>
Alargar pesquisa (remover localização)
Pesquisar noutras províncias (remover localização)
</button>
)}
{['grid', 'list', 'map', 'combined', 'corridors'].map((value, i) => (
@@ -646,10 +651,10 @@ export default function Catalogue({
))}
</div>
)}
{!results.total && (
{!searchLoading && !searchError && !results.total && (
<p className={card}>
Sem oportunidades com estes filtros. Explore as fichas
territoriais ou{' '}
Não há oportunidades publicadas com estes filtros no cadastro consultado.
A informação disponível pode ser incompleta. Pode{' '}
<Link href="/apoio" className="underline">
peça apoio
</Link>
@@ -757,7 +762,7 @@ export default function Catalogue({
</div>
</section>
)}
<EducationalGuides articles={guides} />
<CatalogueGuideLinks articles={guides} />
</Frame>
);
}