Função de Busca

    Intlayer permite que você declare funções de conteúdo em seus módulos de conteúdo, que podem ser síncronas ou assíncronas. Quando a aplicação é construída, o Intlayer executa essas funções para obter o resultado da função. O valor de retorno deve ser um objeto JSON ou um valor simples, como uma string ou um número.

    Aviso: a busca de função atualmente não está disponível na declaração de conteúdo JSON e em arquivos de declarações de conteúdo distantes.

    Declarações de Função

    Aqui está um exemplo de uma simples função síncrona que busca conteúdo:

    **/*.content.ts
    import type { DeclarationContent } from "intlayer";const functionContent = {  key: "function_content",  content: {    text: () => "Este é o conteúdo renderizado por uma função",  },} satisfies DeclarationContent;export default functionContent;

    Neste exemplo, a chave text contém uma função que retorna uma string. Este conteúdo pode ser renderizado em seus componentes React usando os pacotes interpretadores do Intlayer, como react-intlayer.

    Busca de Função Assíncrona

    Além das funções síncronas, o Intlayer suporta funções assíncronas, permitindo que você busque dados de fontes externas ou simule a recuperação de dados com dados fictícios.

    Abaixo está um exemplo de uma função assíncrona que simula uma busca de servidor:

    **/*.content.ts
    import { setTimeout } from "node:timers/promises";import type { DeclarationContent } from "intlayer";const fakeFetch = async (): Promise<string> => {  // Espera 200ms para simular uma busca do servidor  return await setTimeout(200).then(    () => "Este é o conteúdo buscado do servidor"  );};const asyncFunctionContent = {  key: "async_function",  content: { text: fakeFetch },} satisfies DeclarationContent;export default asyncFunctionContent;

    Neste caso, a função fakeFetch imita um atraso para simular o tempo de resposta do servidor. O Intlayer executa a função assíncrona e usa o resultado como o conteúdo da chave text.

    Usando Conteúdo Baseado em Função em Componentes React

    Para usar conteúdo baseado em função em um componente React, você precisa importar useIntlayer de react-intlayer e chamá-lo com a ID do conteúdo para recuperar o conteúdo. Aqui está um exemplo:

    **/*.jsx
    import type { FC } from "react";import { useIntlayer } from "react-intlayer";const MyComponent: FC = () => {  const functionContent = useIntlayer("function_content");  const asyncFunctionContent = useIntlayer("async_function_content");  return (    <div>      <p>{functionContent.text}</p>      {/* Saída: Este é o conteúdo renderizado por uma função */}      <p>{asyncFunctionContent.text}</p>      {/* Saída: Este é o conteúdo buscado do servidor */}    </div>  );};export default MyComponent;

    Se você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.

    Link do GitHub para a documentação