FastComments.com

הוסף תגובות לאפליקציית SolidJS שלך


זו ספריית SolidJS הרשמית של FastComments.

הטמע ווידג'טים של תגובות חיות, צ'אט וסקירה באפליקציית SolidJS שלך.

מאגר

צפה ב-GitHub


התקנה Internal Link

npm

npm install fastcomments-solidjs

שימוש Internal Link

import { FastCommentsCommentWidget } from 'fastcomments-solidjs';

export default function App() {
  return <FastCommentsCommentWidget tenantId="demo" urlId="some-page-id" />;
}

תגובה לשינויים בתצורה (טיפול אימפרטיבי) Internal Link

Solid לא עוקבת באופן אוטומטי אחרי שינויים עמוקים על אובייקטים אקראיים, כך ששינויים בקונפיגורציה לאחר ה-render הראשון חייבים להיות מועברים במפורש. כל ווידג'ט מקבל apiRef שמחזיר handle; קראו ל-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() בטוח לקריאה בכל עת:

  • Before the script has loaded: the partial is stashed and applied at init.
  • During an async init (reviews-summary, user-activity-feed): the partial is queued and applied when the callback resolves.
  • After init: it forwards straight to the live widget's .update() method.

API אימפרטיבי של ה-handle

interface WidgetHandle<Config> {
  getInstance: () => WidgetInstance | null;   // המופע החי האחרון (או null לפני ההרכבה)
  onInstance: (cb: (instance: WidgetInstance) => void) => void; // נקרא פעם אחת כשהמופע מוכן
  update: (partial: Partial<Config>) => void; // מיזוג ודחיפת הקונפיגורציה
}

Use getInstance() for imperative actions that aren't covered by .update(), e.g. openProfile:

const openProfile = () =>
  (handle?.getInstance() as { openProfile?: (o: { userId: string }) => void } | null)
    ?.openProfile?.({ userId: 'demo' });

רכיבים Internal Link

כל ווידג'ט מ־fastcomments-react זמין תחת השמות הבאים:

ComponentHandle typeEmbed loaded
FastCommentsCommentWidgetFastCommentsCommentWidgetHandleוידג'ט תגובות חיות ראשי
FastCommentsCommentCountWidgetFastCommentsCommentCountWidgetHandleתג ספירת תגובות פנימי
FastCommentsLiveChatWidgetFastCommentsLiveChatWidgetHandleוידג'ט צ'אט חי זורם
FastCommentsCollabChatWidgetFastCommentsCollabChatWidgetHandleצ'אט שיתופי מעוגן לטקסט
FastCommentsImageChatWidgetFastCommentsImageChatWidgetHandleתגובות תמונה מבוססות אזורים
FastCommentsRecentCommentsWidgetFastCommentsRecentCommentsWidgetHandleפיד תגובות אחרונות
FastCommentsRecentDiscussionsWidgetFastCommentsRecentDiscussionsWidgetHandleפיד דיונים אחרונים
FastCommentsReviewsSummaryWidgetFastCommentsReviewsSummaryWidgetHandleסיכום דירוג בכוכבים
FastCommentsTopPagesWidgetFastCommentsTopPagesWidgetHandleטבלת מובילים של דפים עם הכי הרבה תגובות
FastCommentsUserActivityFeedWidgetFastCommentsUserActivityFeedWidgetHandleציר זמן פעילות לכל משתמש

ווידג'טים שמתחברים לאלמנט קיים

FastCommentsCollabChatWidget ו־FastCommentsImageChatWidget מוצמדים אל אלמנט שמסופק על ידי הקורא. העבר פונקציית גישה (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" כדי לנתב את התנועה של הווידג'ט דרך אשכול ה‑EU.

הצגה Internal Link

אפליקציית תצוגה מלאה נמצאת בexamples/example-showcase/. היא משקפת את תצוגת React ומכסה את כל הווידג'טים וכן זרימות נפוצות (מצב כהה, עימוד, SSO, קריאות חזרה).

cd examples/example-showcase
npm install
npm run dev

בנייה Internal Link

npm install
npm run build       # ספרייה -> dist/
npm test            # בדיקה בסיסית של vitest
npm run build:demo  # תצוגה -> demo-dist/

זקוקים לעזרה?

אם אתם נתקלים בבעיות או יש לכם שאלות לגבי ספריית SolidJS, אנא:

השתתפות

תרומות מתקבלות בברכה! אנא בקרו ב-מאגר ה-GitHub להנחיות לתרומה.