
Idioma 🇧🇷 Português (Brasil)
Documentação
Primeiros Passos
Uso
Configuração
Add Comments to Your SolidJS App
Esta é a biblioteca oficial SolidJS para o FastComments.
Incorpore widgets de comentários ao vivo, chat e revisão no seu aplicativo SolidJS.
Repositório
Demonstração Ao Vivo 
Experimente todos os widgets ao vivo em https://fastcomments.com/commenting-system-for-solidjs.
Uso 
import { FastCommentsCommentWidget } from 'fastcomments-solidjs';
export default function App() {
return <FastCommentsCommentWidget tenantId="demo" urlId="some-page-id" />;
}
Reagindo a Alterações de Configuração (Handle Imperativo) 
Solid não rastreia automaticamente mutações profundas em objetos arbitrários, portanto
as alterações de configuração após a primeira renderização devem ser aplicadas explicitamente. Every widget
aceita um apiRef que retorna um handle; chame handle.update(partial) a partir de
um createEffect para acionar a reatividade:
import { createEffect, createSignal } from 'solid-js';
import { FastCommentsCommentWidget, type FastCommentsCommentWidgetHandle } from 'fastcomments-solidjs';
export default function Paginated() {
const [page, setPage] = createSignal(0);
let handle: FastCommentsCommentWidgetHandle | undefined;
createEffect(() => handle?.update({ urlId: `product-${page()}` }));
return (
<>
<button onClick={() => setPage(page() + 1)}>next</button>
<FastCommentsCommentWidget
apiRef={(h) => (handle = h)}
tenantId="demo"
urlId={`product-${page()}`}
/>
</>
);
}
update() é seguro chamar a qualquer momento:
- Antes do script ser carregado: o partial é armazenado e aplicado na inicialização.
- Durante uma inicialização assíncrona (reviews-summary, user-activity-feed): o partial é enfileirado e aplicado quando o callback for resolvido.
- Após a inicialização: ele é encaminhado diretamente para o método
.update()do widget ativo.
API imperativa do handle
interface WidgetHandle<Config> {
getInstance: () => WidgetInstance | null; // instância ao vivo mais recente (ou null antes do mount)
onInstance: (cb: (instance: WidgetInstance) => void) => void; // acionado quando a instância estiver pronta
update: (partial: Partial<Config>) => void; // mescla e envia a configuração
}
Use getInstance() para ações imperativas que não são cobertas por .update(), por exemplo, openProfile:
const openProfile = () =>
(handle?.getInstance() as { openProfile?: (o: { userId: string }) => void } | null)
?.openProfile?.({ userId: 'demo' });
Componentes 
Cada widget do fastcomments-react está disponível com o mesmo nome:
| Componente | Tipo de handle | Embed carregado |
|---|---|---|
FastCommentsCommentWidget |
FastCommentsCommentWidgetHandle |
Widget principal de comentários ao vivo |
FastCommentsCommentCountWidget |
FastCommentsCommentCountWidgetHandle |
Badge de contagem de comentários em linha |
FastCommentsLiveChatWidget |
FastCommentsLiveChatWidgetHandle |
Widget de chat ao vivo em streaming |
FastCommentsCollabChatWidget |
FastCommentsCollabChatWidgetHandle |
Chat colaborativo ancorado ao texto |
FastCommentsImageChatWidget |
FastCommentsImageChatWidgetHandle |
Comentários por região na imagem |
FastCommentsRecentCommentsWidget |
FastCommentsRecentCommentsWidgetHandle |
Feed de comentários recentes |
FastCommentsRecentDiscussionsWidget |
FastCommentsRecentDiscussionsWidgetHandle |
Feed de discussões recentes |
FastCommentsReviewsSummaryWidget |
FastCommentsReviewsSummaryWidgetHandle |
Resumo de avaliação por estrelas |
FastCommentsTopPagesWidget |
FastCommentsTopPagesWidgetHandle |
Classificação das páginas mais comentadas |
FastCommentsUserActivityFeedWidget |
FastCommentsUserActivityFeedWidgetHandle |
Linha do tempo de atividade por usuário |
Widgets que se anexam a um elemento existente
FastCommentsCollabChatWidget and FastCommentsImageChatWidget mount into a caller-supplied
element. Passe um acessor targetRef que retorne o elemento depois que ele for montado:
import { FastCommentsImageChatWidget } from 'fastcomments-solidjs';
export default function ImageChat() {
let img: HTMLImageElement | undefined;
return (
<>
<img ref={img} src="/screenshot.png" alt="" />
<FastCommentsImageChatWidget
tenantId="demo"
urlId="my-image"
targetRef={() => img}
/>
</>
);
}
Regiões
Passe region="eu" para rotear o tráfego do widget através do cluster da UE.
Precisa de ajuda?
Se você encontrar algum problema ou tiver dúvidas sobre a biblioteca SolidJS, por favor:
Contribuindo
Contribuições são bem-vindas! Por favor visite o repositório do GitHub para as diretrizes de contribuição.