ChatSetting

最近更新时间:2026-07-01 16:34:30

我的收藏

组件概述

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">
<input
onChange={event => setTargetID(event.target.value)}
placeholder="User ID or group ID"
value={targetID}
/>
<select
onChange={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>
<button
onClick={() => setIsChatSettingShow(show => !show)}
type="button"
>
{isChatSettingShow ? 'Hide Setting' : 'Show Setting'}
</button>
<button
onClick={() => 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

交流与反馈

如遇任何问题,可联系 官网售后 反馈,享有专业工程师的支持,解决您的难题。