import { CaseCoverLink } from "@/app/cases/_components/CaseCoverLink"; import { secondaryButtonLight, textLink } from "@/app/components/button-styles"; import HoverPrefetchLink from "@/app/components/HoverPrefetchLink"; import { buttonLabels, type CaseStudyContent, isClientCase, } from "@/lib/site-content"; function ServiceCaseCard({ caseStudy, relevance, }: { caseStudy: CaseStudyContent; /** Por que este case interessa ao serviço; sem frase própria, vale o resumo do case. */ relevance?: string; }) { return (
{isClientCase(caseStudy) ? caseStudy.title : `${caseStudy.title} · Projeto próprio`}

{caseStudy.headline}

Relação com este serviço

{relevance ?? caseStudy.summary}

{buttonLabels.case} {caseStudy.title} {caseStudy.demoUrl ? ( {buttonLabels.site} {caseStudy.title} ) : null}
); } /** * Prova do serviço. Com algum case de cliente, é "Onde já apliquei isso": os cases ligados ao serviço, cada um com uma * frase sobre o que ele tem a ver com ele, e a experiência profissional citada em texto (sem link). Sem case de cliente * (só projeto próprio, só experiência ou nada), o título é "Como eu trabalho nisso", porque não há cliente para citar. * Sem case, fica só a nota de experiência, sem a frase que manda abrir o case; sem case nem experiência, não mostra nada. * O case cuja capa abre a página (`heroCaseId`) não ganha cartão aqui: a legenda da capa já o cita, com a mesma frase de * relação, e a imagem e o nome dele não aparecem duas vezes na mesma página. */ export function ServiceRelatedCases({ cases: allCases, relevance, experienceNote, heroCaseId, }: { cases: readonly CaseStudyContent[]; /** Por que cada case interessa a este serviço (chave: id do case). */ relevance: Readonly>; experienceNote?: string; /** Case cuja capa já está no topo da página, com legenda: fica de fora dos cartões. */ heroCaseId?: string; }) { const cases = allCases.filter(({ id }) => id !== heroCaseId); const hasCases = cases.length > 0; if (!hasCases && !experienceNote) return null; const hasClientCase = cases.some(isClientCase); return (

{hasClientCase ? "Trabalhos parecidos" : "Experiência"}

{hasClientCase ? "Onde já apliquei isso" : "Como eu trabalho nisso"}

{hasCases ? (

Cada projeto tem a ver com este serviço de um jeito. Abra o case para ver o que foi feito e como ficou.

) : null}
{experienceNote ? (

Na prática: {" "} {experienceNote}

) : null} {hasCases ? (
{cases.map((caseStudy) => ( ))}
) : null}
); }