SuperAPI AI 工具集

syncfusion-react-chat-ui

前端与建站

查看项目

更新于 10-14 15:19

技能介绍

用途

Syncfusion React Chat UI 是一个交互式消息界面组件,用于在 Syncfusion React(包名 @syncfusion/ej2-react-interactive-chat)中构建会话式聊天界面。该技能用于创建和自定义消息界面,包括聊天设置、消息渲染、文件附件、用户状态与界面模板等,可应用于客户支持、团队协作和交互式应用程序。

主要能力

  • 富消息支持:文本、Markdown、格式化内容。
  • 用户管理:多用户会话、在线状态、头像。
  • 文件附件:上传、预览、下载,并支持限制条件。
  • 事件系统:生命周期事件、交互事件和附件事件。
  • 模板:消息、建议、页脚等可自定义 UI。
  • 国际化:多语言和 RTL 支持。

使用方式(文档导航主题)

  • 快速入门:包安装、组件基本初始化、CSS 主题与导入。
  • 消息管理:添加与更新消息、自动滚动到最新消息、按需渐进加载消息、消息配置(置顶、回复、转发)、消息状态跟踪、消息工具栏自定义。
  • 用户配置:用户模型设置、头像自定义、用户在线状态、CSS 类自定义。
  • 事件与交互:组件生命周期事件、消息发送事件、用户输入事件(含完整事件参数)、附件上传与点击事件、工具栏点击事件。
  • 模板系统:空聊天模板、消息自定义渲染、时间分隔模板、输入指示器模板、建议模板、页脚模板自定义。
  • 文件附件:启用附件支持、配置上传端点、文件类型与大小限制、拖放支持、附件模板(预览与页脚)、处理附件点击事件。
  • 头部自定义:头部可见性与文本、头部图标样式、工具栏配置、工具栏项类型与事件。
  • 外观与样式:紧凑模式布局、占位符文本配置、宽高自定义、CSS 类应用、组件级样式。
  • 时间戳与时间分隔:显示/隐藏时间戳、时间戳格式自定义、时间分隔符、按日期组织。
  • 输入指示器:显示/隐藏输入指示器、多用户输入显示、输入指示器模板自定义。
  • 提及集成:配置可提及用户、自定义提及触发字符、消息中预定义提及、提及选择事件。
  • 全球化与 RTL:本地化与语言支持、从右到左(RTL)布局、输入指示器本地化。

快速开始示例

import { ChatUIComponent, MessagesDirective, MessageDirective, UserModel } from '@syncfusion/ej2-react-interactive-chat';
import * as React from 'react';
import * as ReactDOM from "react-dom";

function App() {
    const currentUserModel: UserModel = {
        id: "user1",
        user: "Albert"
    };

    const otherUserModel: UserModel = {
        id: "user2",
        user: "Michale Suyama"
    };

    return (
        <ChatUIComponent user={currentUserModel} headerText="Chat Support">
            <MessagesDirective>
                <MessageDirective text="Hello, how can I help?" author={currentUserModel} />
                <MessageDirective text="I need assistance with my order." author={otherUserModel} />
            </MessagesDirective>
        </ChatUIComponent>
    );
}

ReactDOM.render(<App />, document.getElementById('container'));

主要属性

  • user(UserModel):当前登录用户。
  • messages(MessageModel[]):初始消息列表。
  • headerText(string):头部标题。
  • placeholder(string):输入框提示。
  • enableAttachments(boolean):是否支持文件上传。
  • showTimeStamp(boolean):是否显示消息时间戳。
  • showHeader(boolean):是否显示头部区域。
  • showFooter(boolean):是否显示输入页脚。
  • autoScrollToBottom(boolean):自动滚动到最新消息。
  • loadOnDemand(boolean):渐进式消息加载。
  • enableCompactMode(boolean):左对齐紧凑布局。
  • enableRtl(boolean):从右到左布局。
  • locale(string):语言/文化代码。

常见模式

  • 支持聊天界面:设置 user、headerText、enableAttachments、showTimeStamp、showHeader 以及 messageToolbarSettings(如 ['Copy', 'Reply', 'Delete']),并在 MessagesDirective 中填充消息。
  • 动态添加消息:通过 ref 调用 chatRef.current.addMessage({ author, text, timeStamp })。
  • 配置多个模板:实现 messageTemplate、emptyChatTemplate、timeBreakTemplate 和 suggestionTemplate 以实现完整自定义。

适用场景(资料列出的用例)

  1. 客户支持聊天:多个支持人员处理客户咨询、截图文件附件与自动滚动、输入指示器、长会话历史的渐进加载。
  2. 团队协作:使用 @ 提及成员、群组会话的紧凑模式、置顶重要讨论、转发消息、消息编辑与删除。
  3. 多语言聊天应用:面向阿拉伯语/希伯来语的 RTL 支持、本地化 UI 字符串、多文化支持。

限制

资料未提供该组件的收费、价格、平台兼容性、性能指标或与第三方服务的集成限制;这些信息暂未提供。具体实现细节需参考各主题对应的参考文档。