📂 Estrutura do Arquivo
🔹 Importações
O código começa importando módulos essenciais:
import type { Metadata } from 'next';
import config from '@payload-config';
import { NotFoundPage, generatePageMetadata } from '@payloadcms/next/views';
🔍 Explicação:
Metadata
📄: Define os metadados da página no Next.js.config
⚙️: Contém as configurações do Payload CMS.NotFoundPage
🚫: Componente que exibe a página de erro.generatePageMetadata
🏷️: Função que cria os metadados da página.
📝 Definição de Tipos
type Args = {
params: {
segments: string[];
};
searchParams: {
[key: string]: string | string[];
};
};
🔍 Explicação:
params
🔗: Representa os segmentos da URL acessada.searchParams
🔍: Contém os parâmetros de busca da URL.
🔧 Função generateMetadata
export const generateMetadata = ({ params, searchParams }: Args): Promise<Metadata> =>
generatePageMetadata({ config, params, searchParams });
🔍 Explicação:
generateMetadata
📄: Gera os metadados para a página com base nos parâmetros da URL.- Utiliza
generatePageMetadata
🏷️ para garantir compatibilidade com o Payload CMS.
🚀 Componente NotFound
const NotFound = ({ params, searchParams }: Args) =>
NotFoundPage({ config, params, searchParams });
🔍 Explicação:
NotFound
🚫: Renderiza a página "Não Encontrado" chamando o componenteNotFoundPage
.- Passa
config
,params
esearchParams
📦 para manter a estrutura correta da página.
📤 Exportação
export default NotFound;
🔍 Explicação:
O componente NotFound
é exportado para ser utilizado na aplicação administrativa.
⚠️ Notas Importantes
❌ Arquivo Gerado Automaticamente
Este arquivo é criado pelo Payload CMS e pode ser reescrito a qualquer momento.
✅ Função generateMetadata
Garante que a página possua os metadados corretos, melhorando a indexação e a usabilidade.
🚀 Papel na Aplicação
O not-found.tsx
impede que usuários acessem páginas inexistentes, melhorando a experiência no painel administrativo.
🔍 Código Completo
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
import type { Metadata } from 'next';
import config from '@payload-config';
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
import { NotFoundPage, generatePageMetadata } from '@payloadcms/next/views';
type Args = {
params: {
segments: string[];
};
searchParams: {
[key: string]: string | string[];
};
};
export const generateMetadata = ({ params, searchParams }: Args): Promise<Metadata> =>
generatePageMetadata({ config, params, searchParams });
const NotFound = ({ params, searchParams }: Args) => NotFoundPage({ config, params, searchParams });
export default NotFound;