UNPKG

bettercx-widget

Version:

Professional AI-powered chat widget for BetterCX platform. Seamlessly integrate intelligent customer support into any website.

37 lines (36 loc) 1.67 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useEffect, useRef, useImperativeHandle, forwardRef } from 'react'; import 'bettercx-widget'; export const BetterCXWidgetReact = forwardRef(({ publicKey, theme = 'auto', debug = false, baseUrl = 'https://dev-api.bettercx.ai', aiServiceUrl = 'https://dev-ai.bettercx.ai', autoInit = true, position = 'right', onWidgetEvent, className, }, ref) => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const widgetRef = useRef(null); useImperativeHandle(ref, () => ({ open: async () => { await widgetRef.current?.open(); }, close: async () => { await widgetRef.current?.close(); }, toggle: async () => { await widgetRef.current?.toggle(); }, sendMessage: async (content) => { await widgetRef.current?.sendMessage(content); }, })); useEffect(() => { const widget = widgetRef.current; if (widget && onWidgetEvent) { const handleEvent = (event) => { onWidgetEvent(event.detail); }; widget.addEventListener('widgetEvent', handleEvent); return () => { widget.removeEventListener('widgetEvent', handleEvent); }; } }, [onWidgetEvent]); return (_jsx("bettercx-widget", { ref: widgetRef, className: className, "public-key": publicKey, theme: theme, debug: debug, "base-url": baseUrl, "ai-service-url": aiServiceUrl, "auto-init": autoInit, position: position })); }); BetterCXWidgetReact.displayName = 'BetterCXWidgetReact'; export default BetterCXWidgetReact;