📂 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 { RootPage, 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.RootPage
🏠: Componente que exibe a página principal.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 Page
const Page = ({ params, searchParams }: Args) =>
RootPage({ config, params, searchParams });
🔍 Explicação:
Page
🏠: Renderiza a página principal chamando o componenteRootPage
.- Passa
config
,params
esearchParams
📦 para manter a estrutura correta da página.
📤 Exportação
export default Page;
🔍 Explicação:
O componente Page
é 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 page.tsx
é responsável por renderizar a página raiz da interface administrativa, garantindo que a estrutura correta seja exibida.
🔍 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 { RootPage, 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 Page = ({ params, searchParams }: Args) => RootPage({ config, params, searchParams });
export default Page;