Files
portifolio-evandrodevbr/lib/portfolio-data.ts
T
Evandro Fonseca Junior 6e1022b58c feat(cases): cases de clientes, serviços ligados à prova e SEO por página
Cases da SEV Moda Íntima e da Lavação 047; case no formato cliente, problema, entrega, mídia e contato, com detalhes técnicos recolhidos; sem GitHub, ressalvas e fontes de commit. /cases separa clientes e Laboratório. Serviços mostram o case de cliente certo e o bloco de investimento e prazo só aparece preenchido. Metadata social própria por página, not-found com noindex, sitemap com /ia.
2026-10-14 03:31:57 -03:00

32 lines
889 B
TypeScript

import portfolioData from "@/public/portfolio-data.json";
import {
type DemoAvailability,
getDemoAvailability,
type ProjectHealthSnapshot,
} from "./project-health";
type PortfolioData = typeof portfolioData;
export type PortfolioProject = PortfolioData["projects"][number];
export type PortfolioProjectView = PortfolioProject & {
demoAvailability: DemoAvailability;
demoCheckedAt: string | null;
};
export const portfolio = portfolioData;
export function getFeaturedProjects(
snapshot: ProjectHealthSnapshot | null,
): PortfolioProjectView[] {
return portfolio.projects
.filter(({ featured }) => featured !== false)
.map((project) => {
const check = snapshot?.projects[project.id];
return {
...project,
demoAvailability: getDemoAvailability(project.demoUrl, check),
demoCheckedAt: check?.checkedAt ?? null,
};
});
}