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