import Link from "next/link"; import Header from "@/components/Header"; import Footer from "@/components/Footer"; import { notFound } from "next/navigation"; import CodeExample from "@/components/CodeExample"; import frameworksData from "@/public/frameworks.json"; export default async function FrameworkDetail({ params }) { const { key } = await params; const framework = frameworksData[key]; if (!framework) { notFound(); } const features = framework.caracteristicas || []; const useCases = framework.casos_uso || []; return (
← Voltar para Frameworks
{framework.icone}

{framework.nome}

{framework.nome_completo}

{framework.tipo}
{framework.documentacao && ( 📘 Documentação )} {framework.repositorio && ( 🔗 Repositório )}

{framework.descricao}

LINGUAGEM

{framework.linguagem}

Principal

TIPO

{framework.tipo}

Categoria

FUNÇÃO PRINCIPAL

{framework.funcao_principal}

✨ Principais Características

    {features.map((f, i) => (
  • {f}
  • ))}

📦 Casos de Uso

{useCases.map((u, i) => (
{u}
))}

📋 Detalhes Rápidos

Nome completo: {framework.nome_completo}
Linguagem: {framework.linguagem}
Tipo: {framework.tipo}
Cor (tema):
{framework.exemplos && ( )}
{framework.documentacao && ( 📚 Documentação Oficial )} {framework.repositorio && ( 💻 Repositório no GitHub )}
); } export async function generateMetadata({ params }) { const { key } = await params; const framework = frameworksData[key]; if (!framework) { return { title: "Framework não encontrado" }; } return { title: `ESPDocs - ${framework.nome_completo}`, description: framework.descricao, }; } export async function generateStaticParams() { return Object.keys(frameworksData).map((key) => ({ key: key, })); }