组件概述
ChatSetting 是一个聊天设置组件,它能根据当前激活的会话类型(单聊或群聊)自动渲染对应的设置界面。该组件通过统一的入口,无缝集成了 C2C(单聊) 和群聊两种模式的设置功能,为用户提供了流畅且一致的操作体验。
核心功能:
智能适配: 自动识别会话类型,并切换至相应的设置面板。
状态驱动: 基于当前会话状态,动态更新设置内容。
注意:
如果当前没有激活的会话则不会显示。
快速使用
import { useState } from 'react';import {ChatSetting,Search,useChatContext,VariantType,} from '@tencentcloud/chat-uikit-react';import './styles.css';function ChatSidePanelsBasicDemo() {const [isChatSettingShow, setIsChatSettingShow] = useState(false);const [isSearchShow, setIsSearchShow] = useState(false);const [targetID, setTargetID] = useState('');const [conversationType, setConversationType] = useState<'C2C' | 'GROUP'>('C2C');const { activeConversationID, setActiveConversation } = useChatContext();const handleActivateConversation = () => {const normalizedID = targetID.trim();if (!normalizedID) {return;}setActiveConversation(`${conversationType}${normalizedID}`);};return (<div className="chat-side-panels-basic-demo"><div className="chat-side-panels-basic-demo__header"><h2>Chat Side Panels</h2><p>Activate a conversation, then open or close ChatSetting and Search.</p></div><div className="chat-side-panels-basic-demo__frame"><div className="chat-side-panels-basic-demo__actions"><inputonChange={event => setTargetID(event.target.value)}placeholder="User ID or group ID"value={targetID}/><selectonChange={event => setConversationType(event.target.value as 'C2C' | 'GROUP')}value={conversationType}><option value="C2C">C2C</option><option value="GROUP">GROUP</option></select><button onClick={handleActivateConversation} type="button">Activate Conversation</button><span className="chat-side-panels-basic-demo__active">Active: {activeConversationID || 'None'}</span><buttononClick={() => setIsChatSettingShow(show => !show)}type="button">{isChatSettingShow ? 'Hide Setting' : 'Show Setting'}</button><buttononClick={() => setIsSearchShow(show => !show)}type="button">{isSearchShow ? 'Hide Search' : 'Show Search'}</button></div>{isChatSettingShow && (<div className="chat-side-panels-basic-demo__panel"><ChatSetting /></div>)}{isSearchShow && (<div className="chat-side-panels-basic-demo__panel"><Search variant={VariantType.EMBEDDED} /></div>)}</div></div>);}
相关文档
官方文档
NPM 包
GitHub