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 编写。