
Језик 🇷🇸 Српски
Документација
Почетак рада
Коришћење
Конфигурација
Add Comments to Your SolidJS App
Ovo je zvanična SolidJS biblioteka za FastComments.
Ugradite komentare uživo, chat i widgete za recenzije u vašu SolidJS aplikaciju.
Repozitorijum
Презентација уживо 
Испробајте сваки видџет уживо на https://fastcomments.com/commenting-system-for-solidjs.
Коришћење 
import { FastCommentsCommentWidget } from 'fastcomments-solidjs';
export default function App() {
return <FastCommentsCommentWidget tenantId="demo" urlId="some-page-id" />;
}
Реаговање на промене конфигурације (императивни хендл) 
Solid не прати аутоматски дубоке мутације на произвољним објектима, па измене конфигурације након првог рендеровања морају бити послате експлицитно. Сваки видгет прихвата apiRef који враћа руку; позовите handle.update(partial) из createEffect да покренете реактивност:
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() је безбедно позивати у било ком тренутку:
- Пре него што се скрипта учита: the partial се ставља на чување и примењује при иницијализацији.
- Током асинхроне инициализације (reviews-summary, user-activity-feed): the partial се ставља у ред и примењује када callback буде решен.
- Након иницијализације: директно прослеђује методи
.update()живог видгета.
Императивни handle API
interface WidgetHandle<Config> {
getInstance: () => WidgetInstance | null; // најновија активна инстанца (или null пре mount-а)
onInstance: (cb: (instance: WidgetInstance) => void) => void; // покреће се једном када је инстанца спремна
update: (partial: Partial<Config>) => void; // спаја и шаље конфигурацију
}
Користите getInstance() за императивне акције које нису покривене са .update(), нпр. openProfile:
const openProfile = () =>
(handle?.getInstance() as { openProfile?: (o: { userId: string }) => void } | null)
?.openProfile?.({ userId: 'demo' });
Компоненте 
Сваки видџет из fastcomments-react доступан је под истим именом:
| Component | Handle type | Embed loaded |
|---|---|---|
FastCommentsCommentWidget |
FastCommentsCommentWidgetHandle |
Главни видџет за коментарисање уживо |
FastCommentsCommentCountWidget |
FastCommentsCommentCountWidgetHandle |
Инлајн значка броја коментара |
FastCommentsLiveChatWidget |
FastCommentsLiveChatWidgetHandle |
Видџет за стримовано ћаскање уживо |
FastCommentsCollabChatWidget |
FastCommentsCollabChatWidgetHandle |
Сараднички чат везан за текст |
FastCommentsImageChatWidget |
FastCommentsImageChatWidgetHandle |
Коментари на слици по регионима |
FastCommentsRecentCommentsWidget |
FastCommentsRecentCommentsWidgetHandle |
Фид недавних коментара |
FastCommentsRecentDiscussionsWidget |
FastCommentsRecentDiscussionsWidgetHandle |
Фид недавних дискусија |
FastCommentsReviewsSummaryWidget |
FastCommentsReviewsSummaryWidgetHandle |
Сажетак оцењивања звездицама |
FastCommentsTopPagesWidget |
FastCommentsTopPagesWidgetHandle |
Табела највише коментарисаних страница |
FastCommentsUserActivityFeedWidget |
FastCommentsUserActivityFeedWidgetHandle |
Трака активности по кориснику |
Видџети који се прикачују на постојећи елемент
FastCommentsCollabChatWidget и FastCommentsImageChatWidget монтирају се у елемент који обезбеђује позивач. Проследите accessor targetRef који враћа елемент након што је монтиран:
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}
/>
</>
);
}
Региони
Проследите region="eu" да усмерите саобраћај видџета кроз ЕУ кластер.
Потребна помоћ?
Уколико наиђете на проблеме или имате питања у вези SolidJS библиотеке, молимо вас:
Допринос
Допринеси су добродошли! Молимо посетите GitHub репозиторијум за смернице о доприносу.