
Idioma 🇧🇷 Português (Brasil)
Contexto
API
Escrevendo Extensões
Desenvolvendo Extensões
Contexto
FastComments fornece a capacidade de estender nossa funcionalidade principal por meio de scripts que chamamos de Extensions.
Um Extension pode adicionar marcação adicional ao widget de comentários, ouvintes de eventos e executar código arbitrário.
Aqui você encontrará exemplos de extensões que estão em produção, bem como documentação sobre como escrever extensões.
O Ciclo de Vida da Extensão 
O script para cada extensão é buscado e invocado antes que o widget de comentários comece a buscar o primeiro conjunto de comentários e renderizar a UI.
No carregamento inicial, os seguintes dados serão anexados ao objeto da extensão:
config- Uma referência ao objetoconfig.translations- Uma referência ao objetotranslations.commentsById- Uma referência a todos os comentários por id.root- Uma referência ao nó DOM raiz.
As extensões devem sobrescrever as funções desejadas, que o widget de comentários chamará nos momentos apropriados.
Definindo uma Extensão 
A menor extensão possível seria:
Run 
Para este exemplo, salve isto como my-extension.js, e torne-o disponível em https://example.com/my-extension.min.js.
Esta extensão não faz nada; ao ser carregada, ela busca o objeto de extensão criado pela biblioteca principal de comentários.
Este objeto Extension é um singleton e não é compartilhado com outras extensões.
A seguir, para carregar nossa extensão, precisamos informar o widget de comentários sobre ela. Por exemplo:
Run 
Para exemplos funcionais, veja a próxima seção.
Extensões de Exemplo 
Na FastComments, escrevemos nossas próprias extensões, usando a mesma API. Você pode visualizar o código não minificado dessas extensões nos seguintes endpoints:
Dark Mode
A extensão Dark Mode é carregada condicionalmente quando uma página "dark" é detectada. Esta extensão simplesmente adiciona algum CSS ao widget de comentários. Dessa forma, não precisamos carregar o CSS do dark mode quando ele não é necessário.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderação
Quando o usuário atual é um moderador, usamos a extensão de moderação.
Este é um bom exemplo de como adicionar event listeners baseados em cliques, fazer requisições à API, adicionar itens ao menu de comentários e às áreas de comentários.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Live Chat
A extensão Live Chat (em combinação com outras configurações e estilos) transforma o widget de comentários em um componente de chat ao vivo.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
O Objeto da Extensão 
O objeto de extensão consiste na seguinte definição:
Run 
A API da Extensão 
Interagir com a Extension é simples, pois apenas definimos referências para as funções que queremos que sejam invocadas.
Para continuar o exemplo anterior, digamos que queremos adicionar HTML ao topo de cada comentário:
Run 
Sempre que você retornar HTML como este, ele será mesclado na UI por meio de um algoritmo de dom-diffing.
Acionando manualmente a re-renderização de um comentário
Podemos aguardar o carregamento inicial da página e re-renderizar manualmente um comentário invocando reRenderComment:
Run 