react chat widget
v3.1.3
npm install --save react-chat-widget
yarn add react-chat-widget
1- 將 Widget 元件加入根元件
import React from 'react' ;
import { Widget } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
function App ( ) {
return (
< div className = "App" >
< Widget />
</ div >
) ;
}
export default App ;
2-您需要使用的唯一必要的道具是handleNewUserMessage
,它將接收來自使用者的輸入。
import React from 'react' ;
import { Widget } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
function App ( ) {
const handleNewUserMessage = ( newMessage ) => {
console . log ( `New message incoming! ${ newMessage } ` ) ;
// Now send the message throught the backend API
} ;
return (
< div className = "App" >
< Widget
handleNewUserMessage = { handleNewUserMessage }
/>
</ div >
) ;
}
export default App ;
3- 匯入您在小工具中新增訊息的方法。 (見留言)
import React from 'react' ;
import { Widget , addResponseMessage } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
function App ( ) {
useEffect ( ( ) => {
addResponseMessage ( 'Welcome to this awesome chat!' ) ;
} , [ ] ) ;
const handleNewUserMessage = ( newMessage ) => {
console . log ( `New message incoming! ${ newMessage } ` ) ;
// Now send the message throught the backend API
addResponseMessage ( response ) ;
} ;
return (
< div className = "App" >
< Widget
handleNewUserMessage = { handleNewUserMessage }
/>
</ div >
) ;
}
export default App ;
4- 自訂小工具以符合您的應用程式設計!您可以新增這兩個屬性來管理小部件的標題及其將使用的頭像。當然,您可以隨意更改小部件在 CSS 中的樣式
import React , { useEffect } from 'react' ;
import { Widget , addResponseMessage } from 'react-chat-widget' ;
import 'react-chat-widget/lib/styles.css' ;
import logo from './logo.svg' ;
function App ( ) {
useEffect ( ( ) => {
addResponseMessage ( 'Welcome to this **awesome** chat!' ) ;
} , [ ] ) ;
const handleNewUserMessage = ( newMessage ) => {
console . log ( `New message incoming! ${ newMessage } ` ) ;
// Now send the message throught the backend API
} ;
return (
< div className = "App" >
< Widget
handleNewUserMessage = { handleNewUserMessage }
profileAvatar = { logo }
title = "My new awesome title"
subtitle = "And my cool subtitle"
/>
</ div >
) ;
}
export default App ;
支柱 | 類型 | 必需的 | 預設值 | 描述 |
---|---|---|---|---|
處理新用戶訊息 | (...args: 任何[]) => 任何 | 是的 | 處理使用者輸入的函數,提交時將收到全文訊息 | |
標題 | 細繩 | 不 | '歡迎' | 小部件的標題 |
字幕 | 細繩 | 不 | “這是你的聊天字幕” | 小部件的副標題 |
寄件者佔位符 | 細繩 | 不 | “輸入訊息...” | 訊息輸入的佔位符 |
個人資料頭像 | 細繩 | 不 | 將在回應中設定的個人資料圖像 | |
個人資料客戶頭像 | 細繩 | 不 | 將在客戶端訊息上設定的個人資料圖像 | |
標題頭像 | 細繩 | 不 | 將顯示在聊天標題旁的圖片 | |
顯示關閉按鈕 | 布林值 | 不 | 錯誤的 | 在全螢幕模式下顯示或隱藏關閉按鈕 |
全螢幕模式 | 布林值 | 不 | 錯誤的 | 允許在全桌面模式下使用全螢幕 |
自動對焦 | 布林值 | 不 | 真的 | 自動對焦或不依使用者輸入 |
發射器 | (handleToggle) => 元素類型 | 不 | 使用自訂啟動器組件代替預設組件 | |
處理QuickButtonClicked | (...args: 任意[]) => 任意 | 不 | 處理使用者點擊快速按鈕的函數,點擊時將收到“值”。 | |
顯示時間戳 | 布林值 | 不 | 真的 | 在訊息上顯示時間戳 |
聊天ID | 細繩 | 不 | 'rcw-聊天容器' | a11y 的聊天容器 ID |
句柄切換 | (...args: 任何[]) => 任何 | 不 | 'rcw-聊天容器' | 處理小部件切換時的函數,將接收切換狀態 |
啟動器OpenLabel | 細繩 | 不 | “打開聊天” | 關閉時啟動器的 Alt 值 |
啟動器關閉標籤 | 細繩 | 不 | “關閉聊天” | 開啟時啟動器的 Alt 值 |
啟動器OpenImg | 細繩 | 不 | 」 | 本地或遠端圖像 url,如果未提供它將顯示預設圖像 |
啟動器關閉影像 | 細繩 | 不 | 」 | 本機或遠端影像 url,如果未提供,將顯示預設影像 |
發送按鈕Alt | 細繩 | 不 | '發送' | 出於 a11y 目的發送按鈕 alt |
處理文字輸入變化 | (事件)=> 任何 | 不 | 輸入更改時觸發的道具 | |
處理提交 | (事件)=> 任何 | 不 | 提交訊息時觸發的屬性,用於自訂驗證 | |
可調整大小 | 布林值 | 不 | 錯誤的 | 允許透過拖曳小部件的左邊框來調整小部件大小的道具 |
表情符號 | 布林值 | 不 | 錯誤的 | 啟用表情符號選擇器 |
顯示徽章 | 布林值 | 不 | 真的 | 允許顯示或隱藏未讀訊息徽章的道具 |
要更改您需要小部件具有的樣式,只需覆蓋將它們包裝在容器內的 CSS 類別並向其中添加您自己的樣式即可!所有類別都以rcw-
為前綴,因此如果您沒有其他類,它們不會覆蓋它們。要覆蓋,您可以這樣做,例如:
. rcw-conversation-container > . rcw-header {
background-color : red;
}
. rcw-message > . rcw-response {
background-color : black;
color : white;
}
這樣,您就可以保持 JS 乾淨,並將樣式保留在 CSS 中。
從 v3.0 開始,訊息現在有一個可選 ID,可以在建立時新增。
新增回應訊息
新增用戶留言
新增連結片段
{
title : 'My awesome link' ,
link : 'https://github.com/Wolox/react-chat-widget' ,
target : '_blank'
}
target
值為_blank
,它將在新視窗中開啟連結。渲染自訂元件
設定快速按鈕
label
和value
的物件數組回應和用戶訊息都支援 Markdown。
您也可以控制小部件的某些操作:
切換小工具
切換輸入停用
切換訊息載入器
刪除訊息*
addResponseMessage
設定的 id 的訊息,或根據位置刪除或兩者兼而有之。例如, deleteMessages(2, 'myId')
將刪除 id 為myId
的訊息和上一則訊息。全部標記為已讀
設定徽章計數
badge
屬性已變更為從 Widget 內部進行管理。此方法是手動設定徽章編號。 如果您需要非預設元件,則可以為啟動器使用自訂元件,只需使用launcher屬性:
import React from 'react' ;
import { Widget } from 'react-chat-widget' ;
...
function MyApp ( ) {
const getCustomLauncher = ( handleToggle ) =>
< button onClick = { handleToggle } > This is my launcher component! </ button >
return (
< Widget
. . .
launcher = { handleToggle => getCustomLauncher ( handleToggle ) }
/>
)
}
getCustomLauncher()
是一種將傳回Launcher
元件的方法,如範例所示。預設情況下,該 prop 傳遞的函數將接收handleToggle
參數,該參數是切換小部件的方法。
該項目由 Martín Callegari 維護,由 Wolox 編寫。