From 0bbf975ac0e7565bc04673157bc9ac4956693219 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Fri, 9 Aug 2024 17:38:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 58 +++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 85be2ec..4e93657 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -295,11 +295,11 @@ const Meeting: React.FC = () => { break; // 用户加入频道回调 case 'UserJoined': - console.log(item, '用户加入频道回调'); + setAllUserListData('UserJoined', item) break; // 用户退出频道回调 case 'UserLeave': - console.log(item, '用户退出频道回调'); + setAllUserListData('UserLeave', item) break; // 所有用户开闭麦 case 'OperAllMicr': @@ -307,11 +307,11 @@ const Meeting: React.FC = () => { break; // 用户关闭开启麦克风 case 'OperMicr': - setAllUserListData(item.user) + setAllUserListData('OperMicr', item) break; // 用户开启关闭摄像头 case 'OperCamera': - setAllUserListData(item.user) + setAllUserListData('OperCamera', item) break; // 管理员用户信息刷新 case 'ManagerRefresh': @@ -358,16 +358,46 @@ const Meeting: React.FC = () => { }, [recorder]) // 替换数据 - const setAllUserListData = (user: any): void => { - setAllUserList((res: any) => { - let item = res.find((row: any) => row.uid === user.uid) - if (item) { - for (const key in user) { - item[key] = user[key]; - } - } - return res - }) + const setAllUserListData = (key: string, item: any): void => { + switch (key) { + case 'OperMicr': + case 'OperCamera': + setAllUserList((res: any) => { + let userItem = res.find((row: any) => row.uid === item.user.uid) + if (userItem) { + for (const key in item.user) { + userItem[key] = item.user[key]; + } + } + return res + }) + break; + case 'UserJoined': + setAllUserList((res: any) => { + let userItem = res.find((row: any) => row.uid === item.user.uid) + if (userItem) { + userItem.isRoom = true + for (const key in item.user) { + userItem[key] = item.user[key]; + } + } + return res + }) + break; + case 'UserLeave': + setAllUserList((res: any) => { + let userItem = res.find((row: any) => row.uid === item.uid) + if (userItem) { + userItem.isRoom = false + } + return res + }) + break; + case 'ManagerRefresh': + + break; + } + } // 网络 const handleNetworkChange = (): void => {