پرش به محتوای اصلی
پلکسیت
React و Next.js

افزودن چت‌بات پلکسیت به اپلیکیشن React و Next.js

در React و Next.js هم همان loader ویجت را بارگذاری می‌کنید؛ بستهٔ npm جداگانه‌ای لازم نیست. در Next.js از کامپوننت Script در layout ریشه استفاده کنید و در React معمولی، اسکریپت را یک بار در کامپوننت ریشه با useEffect اضافه کنید.

مراحل

React و Next.js، قدم‌به‌قدم

  1. ۱

    کلید سایت را بردارید

    کلید سایت (wk_…) را از کد تب «نصب» پنل کپی کنید و دامنهٔ اپلیکیشن را مجاز کنید.

  2. ۲

    loader را در ریشه بارگذاری کنید

    در layout ریشهٔ Next.js یا کامپوننت App در React، تا ویجت در همهٔ مسیرها باشد.

  3. ۳

    یک بار، نه در هر صفحه

    loader فقط یک ویجت در صفحه می‌سازد؛ آن را در کامپوننت‌هایی که مدام mount می‌شوند نگذارید.

کد آماده

کد را کپی کنید، کلید خودتان را بگذارید

مقدار wk_… را با کلید سایتی که در تب «نصب» پنل می‌بینید جایگزین کنید؛ یا کد کامل را مستقیم از همان‌جا کپی کنید.

Next.js (App Router) — app/layout.tsx

Next.js (App Router) — app/layout.tsxtsx
import Script from "next/script";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="fa" dir="rtl">
      <body>
        {children}
        <Script
          src="https://widget.plexit.ir/loader.js"
          data-site-key="wk_..."
          data-position="right"
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

ویژگی‌های data-* مستقیم روی تگ اسکریپت قرار می‌گیرند و loader آن‌ها را می‌خواند.

React — کامپوننت PlexitWidget

React — کامپوننت PlexitWidgettsx
import { useEffect } from "react";

export function PlexitWidget({ siteKey }: { siteKey: string }) {
  useEffect(() => {
    if (document.querySelector("script[data-plexit-loader]")) return;
    const script = document.createElement("script");
    script.src = "https://widget.plexit.ir/loader.js";
    script.async = true;
    script.dataset.siteKey = siteKey; // → data-site-key
    script.dataset.position = "right"; // → data-position
    script.dataset.plexitLoader = "";
    document.body.appendChild(script);
  }, [siteKey]);

  return null;
}

// در کامپوننت ریشه:
// <PlexitWidget siteKey="wk_..." />

این کامپوننت را یک بار در ریشهٔ اپلیکیشن قرار دهید.

نکته‌ها

پیش از انتشار بدانید

  • بستهٔ npm اختصاصی لازم نیست؛ همان loader.js که در سایت‌های HTML استفاده می‌شود.
  • loader در هر صفحه فقط یک ویجت می‌سازد؛ با جابه‌جایی بین مسیرهای Next.js ویجت باقی می‌ماند.
  • اگر به‌جای ویجت، رابط گفت‌وگوی اختصاصی خودتان را می‌خواهید، از API عمومی در سمت سرور استفاده کنید.
سؤالات متداول

پرسش‌های رایج: React و Next.js

پکیج npm رسمی برای React دارید؟

برای نصب ویجت نیازی به پکیج نیست؛ همان اسکریپت loader را با next/script یا یک useEffect بارگذاری کنید. کد هر دو روش در همین صفحه آمده است.

در Next.js از کدام strategy استفاده کنم؟

afterInteractive مناسب است؛ ویجت پس از آماده شدن صفحه بارگذاری می‌شود و روی بارگذاری اولیهٔ محتوا اثری ندارد. lazyOnload هم اگر ویجت اولویت پایینی دارد قابل استفاده است.

می‌توانم رابط گفت‌وگوی خودم را بسازم؟

بله؛ با API عمومی پلکسیت پیام را از سرور خودتان بفرستید و پاسخ و منابع را در رابط دلخواه نمایش دهید. کلید API را هرگز در کد سمت مرورگر نگذارید.

کد نصب اختصاصی شما در پنل آماده است

ثبت‌نام رایگان است و به کارت بانکی نیاز ندارد. اسنادتان را بارگذاری کنید، در زمین تمرین امتحانش کنید و با یک خط کد روی سایت بگذارید.

  • بدون کارت بانکی
  • پلن رایگان همیشگی
  • نصب با یک خط اسکریپت