This commit is contained in:
yj 2024-08-21 13:46:30 +08:00
parent 97d3bd040c
commit 693e7ed1f7
1 changed files with 21 additions and 26 deletions

View File

@ -464,29 +464,9 @@ const Meeting: React.FC = () => {
item.isShow = true;
}
});
// RefreshVideoView(res)
return res
})
}
// 刷新视图
const RefreshVideoView = async (list: any): Promise<void> => {
list.forEach(async (item: any) => {
if (item.uid === userInfo.uid) {
await agora.setupLocalVideo({
uid: Number(item.uid),
view: document.getElementById(`video-${item.uid}`),
channelId: state.channelId,
sourceType: VideoSourceType.VideoSourceCameraPrimary,
})
} else {
await agora.setupRemoteVideo({
uid: Number(item.uid),
view: document.getElementById(`video-${item.uid}`),
channelId: state.channelId,
})
}
});
}
// 替换数据
const setAllUserListData = async (key: string, item: any, callBack?: Function): Promise<void> => {
switch (key) {
@ -507,12 +487,26 @@ const Meeting: React.FC = () => {
})
break;
case 'UserJoined':
setRoomUserList((res: any) => [...res, item.user])
setRoomUserList((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];
}
userItem.isRoom = true;
return [...res]
} else {
item.user.isRoom = true;
return [...res, item.user]
}
})
break;
case 'UserLeave':
setRoomUserList((res: any) => {
let userItemIndex = res.findIndex((row: any) => row.uid === item.uid)
res.splice(userItemIndex, 1)
let userItem = res.find((row: any) => row.uid === item.uid)
if (userItem) {
userItem.isRoom = false
}
return res
})
break;
@ -815,6 +809,7 @@ const Meeting: React.FC = () => {
if (res.code === 200) {
res.data.forEach((item: any) => {
item.isShow = true;
item.isRoom = true;
})
setRoomUserList(res.data)
getUserRoomInfo().then(async (res) => {
@ -1109,7 +1104,7 @@ const Meeting: React.FC = () => {
<div className={`${styles.meetingContentBodyLeft} drag`}>
<div className={getMeetingContentBodyLeftModeClass()} id='videoView'>
{roomUserList.map((item: any, index: number) => {
return (index <= 19 ? <div
return (index <= 19 && item.isRoom ? <div
id={item.uid}
className={`${styles.meetingContentSwiperCard}`}
key={index}
@ -1295,7 +1290,7 @@ const Meeting: React.FC = () => {
<div className={styles.meetingUserListContent}>
{roomUserList.map((item: any, index: number) => {
return (
item.isShow ? <div key={index + item.uid} className='drag'>
item.isShow && item.isRoom ? <div key={index + item.uid} className='drag'>
<div>
<div><Avatar name={item.userName} /></div>
<span>
@ -1564,7 +1559,7 @@ const Meeting: React.FC = () => {
<div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
<img src={row.active ? row.iconActive : row.icon} alt="" />
<span>{row.title}</span>
{row.title === '成员列表' ? <div>{roomUserList.length}</div> : null}
{row.title === '成员列表' ? <div>{roomUserList.filter((item: any) => item.isRoom).length}</div> : null}
{row.title === '聊天' && noViewChatList > 0 ? <div
style={{
backgroundColor: 'red',