This commit is contained in:
parent
97d3bd040c
commit
693e7ed1f7
|
|
@ -464,29 +464,9 @@ const Meeting: React.FC = () => {
|
||||||
item.isShow = true;
|
item.isShow = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// RefreshVideoView(res)
|
|
||||||
return 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> => {
|
const setAllUserListData = async (key: string, item: any, callBack?: Function): Promise<void> => {
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
|
@ -507,12 +487,26 @@ const Meeting: React.FC = () => {
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
case 'UserJoined':
|
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;
|
break;
|
||||||
case 'UserLeave':
|
case 'UserLeave':
|
||||||
setRoomUserList((res: any) => {
|
setRoomUserList((res: any) => {
|
||||||
let userItemIndex = res.findIndex((row: any) => row.uid === item.uid)
|
let userItem = res.find((row: any) => row.uid === item.uid)
|
||||||
res.splice(userItemIndex, 1)
|
if (userItem) {
|
||||||
|
userItem.isRoom = false
|
||||||
|
}
|
||||||
return res
|
return res
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
|
|
@ -815,6 +809,7 @@ const Meeting: React.FC = () => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
res.data.forEach((item: any) => {
|
res.data.forEach((item: any) => {
|
||||||
item.isShow = true;
|
item.isShow = true;
|
||||||
|
item.isRoom = true;
|
||||||
})
|
})
|
||||||
setRoomUserList(res.data)
|
setRoomUserList(res.data)
|
||||||
getUserRoomInfo().then(async (res) => {
|
getUserRoomInfo().then(async (res) => {
|
||||||
|
|
@ -1109,7 +1104,7 @@ const Meeting: React.FC = () => {
|
||||||
<div className={`${styles.meetingContentBodyLeft} drag`}>
|
<div className={`${styles.meetingContentBodyLeft} drag`}>
|
||||||
<div className={getMeetingContentBodyLeftModeClass()} id='videoView'>
|
<div className={getMeetingContentBodyLeftModeClass()} id='videoView'>
|
||||||
{roomUserList.map((item: any, index: number) => {
|
{roomUserList.map((item: any, index: number) => {
|
||||||
return (index <= 19 ? <div
|
return (index <= 19 && item.isRoom ? <div
|
||||||
id={item.uid}
|
id={item.uid}
|
||||||
className={`${styles.meetingContentSwiperCard}`}
|
className={`${styles.meetingContentSwiperCard}`}
|
||||||
key={index}
|
key={index}
|
||||||
|
|
@ -1295,7 +1290,7 @@ const Meeting: React.FC = () => {
|
||||||
<div className={styles.meetingUserListContent}>
|
<div className={styles.meetingUserListContent}>
|
||||||
{roomUserList.map((item: any, index: number) => {
|
{roomUserList.map((item: any, index: number) => {
|
||||||
return (
|
return (
|
||||||
item.isShow ? <div key={index + item.uid} className='drag'>
|
item.isShow && item.isRoom ? <div key={index + item.uid} className='drag'>
|
||||||
<div>
|
<div>
|
||||||
<div><Avatar name={item.userName} /></div>
|
<div><Avatar name={item.userName} /></div>
|
||||||
<span>
|
<span>
|
||||||
|
|
@ -1564,7 +1559,7 @@ const Meeting: React.FC = () => {
|
||||||
<div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
|
<div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
|
||||||
<img src={row.active ? row.iconActive : row.icon} alt="" />
|
<img src={row.active ? row.iconActive : row.icon} alt="" />
|
||||||
<span>{row.title}</span>
|
<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
|
{row.title === '聊天' && noViewChatList > 0 ? <div
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: 'red',
|
backgroundColor: 'red',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue