import type { Metadata } from "next"; import Link from "next/link"; import { notFound } from "next/navigation"; import { Breadcrumb } from "@/app/components/Breadcrumb"; import { pageTop, primaryButton, secondaryButtonDark, } from "@/app/components/button-styles"; import WhatsAppLink from "@/app/components/WhatsAppLink"; import { safeJsonLd } from "@/lib/jsonld"; import { buildBreadcrumbList, buildPageSocialMetadata } from "@/lib/seo"; import { caseStudies, isClientCase, siteUrl } from "@/lib/site-content"; import { CaseMediaSection } from "../_components/CaseMediaSection"; import { CaseRelatedServices } from "../_components/CaseRelatedServices"; import { CaseResultSection } from "../_components/CaseResultSection"; interface CasePageProps { params: Promise<{ slug: string }>; } export function generateStaticParams() { return caseStudies.map((caseStudy) => ({ slug: caseStudy.id })); } export async function generateMetadata({ params, }: CasePageProps): Promise { const { slug } = await params; const caseStudy = caseStudies.find((item) => item.id === slug); if (!caseStudy) return { title: "Case não encontrado" }; const url = `${siteUrl}/cases/${caseStudy.id}`; const title = `${caseStudy.title}: ${caseStudy.subtitle}`; return { title, description: caseStudy.summary, ...buildPageSocialMetadata({ url, title, description: caseStudy.summary, type: "article", }), }; } export default async function CasePage({ params }: CasePageProps) { const { slug } = await params; const caseStudy = caseStudies.find((item) => item.id === slug); if (!caseStudy) notFound(); const pageUrl = `${siteUrl}/cases/${caseStudy.id}`; const isClient = isClientCase(caseStudy); const jsonLd = { "@context": "https://schema.org", "@graph": [ buildBreadcrumbList(pageUrl, [ ["Início", siteUrl], ["Cases", `${siteUrl}/cases`], [caseStudy.title, pageUrl], ] as const), ], }; return (

{isClient ? "Case de cliente" : "Projeto de laboratório"} ·{" "} {caseStudy.title}

{caseStudy.headline}

{caseStudy.summary}

{isClient ? "O cliente e o contexto" : "O contexto do projeto"}

{caseStudy.context}

{caseStudy.role ? (

Minha participação: {" "} {caseStudy.role}

) : null}

O problema

{caseStudy.problem}

O que foi feito

    {caseStudy.deliveries.map((delivery) => (
  • {delivery}
  • ))}

Quer um projeto parecido com este?

Conte o que você precisa. A conversa começa direto no WhatsApp, sem formulário.

Conversar sobre um projeto parecido Ver outros cases
Detalhes técnicos

Tecnologias

    {caseStudy.stack.map((item) => (
  • {item}
  • ))}

Decisões técnicas

    {caseStudy.decisions.map((decision) => (
  • {decision}
  • ))}
); }