This commit is contained in:
parent
c3a4f06c51
commit
2a82ab22ee
|
|
@ -15,7 +15,6 @@ import { onInvoke, onSignalr, offSignalr, onStart } from '@/utils/package/signal
|
|||
import dayjs from 'dayjs';
|
||||
import durationPlugin from 'dayjs/plugin/duration';
|
||||
import { VideoSourceType } from 'agora-electron-sdk';
|
||||
import { GetUserList } from '@/api/Home/User';
|
||||
import Avatar from '@/components/Avatar';
|
||||
import SharedFilesModel from '@/components/SharedFilesModel';
|
||||
import StupWizard from '@/components/StupWizard';
|
||||
|
|
@ -104,7 +103,6 @@ const Meeting: React.FC = () => {
|
|||
rowIndex: 0,
|
||||
});
|
||||
const [roomUserList, setRoomUserList] = useState<any>([])
|
||||
const [allUserList, setAllUserList] = useState<any>([])
|
||||
const [chatList, setChatList] = useState<any>([])
|
||||
const [currentVideoId, setCurrentVideoId] = useState('')
|
||||
let [currentSeconds, setCurrentSeconds] = useState(0)
|
||||
|
|
@ -230,7 +228,7 @@ const Meeting: React.FC = () => {
|
|||
}, [(navigator as any).connection.effectiveType]);
|
||||
|
||||
useEffect(() => {
|
||||
let currentVideoUserItem = allUserList.find((item: any) => item.uid === currentVideoId || item.screenShareId === currentVideoId)
|
||||
let currentVideoUserItem = roomUserList.find((item: any) => item.uid === currentVideoId || item.screenShareId === currentVideoId)
|
||||
if (currentVideoUserItem) {
|
||||
setCurrentLookUserAccount(currentVideoUserItem)
|
||||
}
|
||||
|
|
@ -362,50 +360,35 @@ const Meeting: React.FC = () => {
|
|||
case 'OperMicr':
|
||||
case 'OperCamera':
|
||||
case 'ManagerRefresh':
|
||||
setAllUserList((res: any) => {
|
||||
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];
|
||||
}
|
||||
}
|
||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
||||
setRoomUserList(inRoomList)
|
||||
setRoomUserList(res)
|
||||
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];
|
||||
}
|
||||
}
|
||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
||||
setRoomUserList(inRoomList)
|
||||
return res
|
||||
})
|
||||
setRoomUserList((res: any) => [...res, item.user])
|
||||
break;
|
||||
case 'UserLeave':
|
||||
setAllUserList((res: any) => {
|
||||
let userItem = res.find((row: any) => row.uid === item.uid)
|
||||
if (userItem) {
|
||||
userItem.isRoom = false
|
||||
}
|
||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
||||
setRoomUserList(inRoomList)
|
||||
setRoomUserList((res: any) => {
|
||||
let userItemIndex = res.findIndex((row: any) => row.uid === item.uid)
|
||||
res.splice(userItemIndex, 1)
|
||||
return res
|
||||
})
|
||||
break;
|
||||
case 'OperAllMicr':
|
||||
setAllUserList((res: any) => {
|
||||
setRoomUserList((res: any) => {
|
||||
res.forEach((row: any) => {
|
||||
row.enableMicr = item.enableMicr
|
||||
if (row.uid !== userInfo.uid) {
|
||||
row.enableMicr = item.enableMicr
|
||||
}
|
||||
})
|
||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
||||
setRoomUserList(inRoomList)
|
||||
setRoomUserList(res)
|
||||
return res
|
||||
})
|
||||
break;
|
||||
|
|
@ -672,32 +655,13 @@ const Meeting: React.FC = () => {
|
|||
|
||||
// 获取房间用户
|
||||
const getRoomUser = async (callback?: Function): Promise<void> => {
|
||||
Promise.all([
|
||||
GetRoomUser(state.channelId),
|
||||
GetUserList({
|
||||
pageIndex: 1,
|
||||
pageSize: 9999,
|
||||
searchKeywod: '',
|
||||
isOnline: true,
|
||||
})
|
||||
]).then(res => {
|
||||
if (res[0].code === 200 && res[1].code === 200) {
|
||||
res[0].data.forEach((item: any) => {
|
||||
GetRoomUser(state.channelId).then(res => {
|
||||
if (res.code === 200) {
|
||||
res.data.forEach((item: any) => {
|
||||
item.isShow = true;
|
||||
})
|
||||
setRoomUserList(res[0].data)
|
||||
res[1].data.items.forEach((item: any) => {
|
||||
item.uid = item.id;
|
||||
const itemUser = res[0].data.find((row: any) => row.uid === item.id)
|
||||
item.isRoom = itemUser ? true : false;
|
||||
for (const itemUserKey in itemUser) {
|
||||
item[itemUserKey] = itemUser[itemUserKey];
|
||||
}
|
||||
});
|
||||
setAllUserList(res[1].data.items);
|
||||
if (callback) {
|
||||
callback(res[1].data.items)
|
||||
}
|
||||
setRoomUserList(res.data)
|
||||
callback && callback(res.data)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
@ -875,33 +839,30 @@ const Meeting: React.FC = () => {
|
|||
<div className={styles.meetingContentBody}>
|
||||
<div className={`${styles.meetingContentBodyLeft} drag`}>
|
||||
<div className={getMeetingContentBodyLeftModeClass()} >
|
||||
{allUserList.map((item: any, index: number) => {
|
||||
return (
|
||||
item.isRoom ?
|
||||
<div
|
||||
className={`${styles.meetingContentSwiperCard}`}
|
||||
key={index}
|
||||
onClick={() => {
|
||||
setCurrentVideoId(item.uid)
|
||||
if (String(isShare) === item.screenShareId) {
|
||||
renderVideo(item.screenShareId)
|
||||
} else {
|
||||
renderVideo(item.uid)
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div className={`${styles.meetingContentSwiperCardVdeio} ${currentVideoId === item.uid ? styles.active : ''}`} id={`video-${item.uid}`}>
|
||||
<div className={styles.meetingContentSwiperCardVdeioLoading}>
|
||||
<Avatar name={item.userName} />
|
||||
</div>
|
||||
</div>
|
||||
{meetingContentUser(item)}
|
||||
{item.enableCamera ? null : meetingContentError(currentVideoId, item)}
|
||||
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
||||
屏幕分享中
|
||||
</div> : null}
|
||||
</div> : null
|
||||
)
|
||||
{roomUserList.map((item: any, index: number) => {
|
||||
return <div
|
||||
className={`${styles.meetingContentSwiperCard}`}
|
||||
key={index}
|
||||
onClick={() => {
|
||||
setCurrentVideoId(item.uid)
|
||||
if (String(isShare) === item.screenShareId) {
|
||||
renderVideo(item.screenShareId)
|
||||
} else {
|
||||
renderVideo(item.uid)
|
||||
}
|
||||
}}
|
||||
>
|
||||
<div className={`${styles.meetingContentSwiperCardVdeio} ${currentVideoId === item.uid ? styles.active : ''}`} id={`video-${item.uid}`}>
|
||||
<div className={styles.meetingContentSwiperCardVdeioLoading}>
|
||||
<Avatar name={item.userName} />
|
||||
</div>
|
||||
</div>
|
||||
{meetingContentUser(item)}
|
||||
{item.enableCamera ? null : meetingContentError(currentVideoId, item)}
|
||||
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
||||
屏幕分享中
|
||||
</div> : null}
|
||||
</div>
|
||||
}
|
||||
)}
|
||||
{currentLookUserStatus === 1 && currentLookUserAccount ?
|
||||
|
|
|
|||
Loading…
Reference in New Issue