Pular para o conteúdo principal

isCmsPage

A função isCmsPage verifica se a página atual é uma página do CMS. Ela verifica se a URL contém o parâmetro cms=true, o que indica que a página é uma página gerenciada pelo CMS (Content Management System).

Exemplos

Renderizar uma mensagem indicando se a página é ou não uma página do CMS

import { isCmsPage } from "@m3cms/common";

function SomeComponent() {
const currentPageIsCmsPage = isCmsPage();

if (currentPageIsCmsPage) {
return <div>This is a CMS page.</div>;
} else {
return <div>This is not a CMS page.</div>;
}
}

Validando no NextJS em nível de Server Side no next js com o getServerSideProps

import { isCmsPage } from "@m3cms/common";
import type { GetServerSideProps } from 'next'

type PageProps = {
isCmsPage: boolean;
};

function HomePage({ isCmsPage }: PageProps) {
if (isCmsPage) {
return <div>This is a CMS page.</div>;
} else {
return <div>This is not a CMS page.</div>;
}
}

export const getServerSideProps: GetServerSideProps<PageProps> = async ({ resolvedUrl }) => {
return {
props: {
isCmsPage: isCmsPage(resolvedUrl),
},
};
};


export default HomePage

A função isCmsPage recebe um parâmetro opcional url, que é a URL a ser verificada. Se nenhum valor for fornecido para o parâmetro url, a função usa a URL da janela global (globalThis.location.href) como padrão.

Atenção

Em uma pre-renderização do lado do servidor, a função isCmsPage sempre retorna false, se nenhum valor for fornecido para o parâmetro url.

E se isso controlar algum html / estado do seu componente, pode acontecer esse erro:

How to resolve the server mismatch error when hydrating a shared React component that can be used in client-side only or server-side rendered apps