yangjie #22
|
|
@ -1,17 +1,24 @@
|
||||||
import styles from '@/page/Meeting/CurrentSpeakUserWindow/index.module.scss'
|
import styles from '@/page/Meeting/CurrentSpeakUserWindow/index.module.scss'
|
||||||
|
import { storage } from '@/utils';
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
const CurrentSpeakUserWindow: React.FC = () => {
|
const CurrentSpeakUserWindow: React.FC = () => {
|
||||||
const [inputValue, setInputValue] = useState<string>('')
|
const [inputValue, setInputValue] = useState('')
|
||||||
|
const [user, setUser] = useState<any>({});
|
||||||
|
const [isMeSpeack, setIsMeSpeack] = useState(false)
|
||||||
const channel = new BroadcastChannel('meeting_channel');
|
const channel = new BroadcastChannel('meeting_channel');
|
||||||
|
const userInfo = JSON.parse(storage.getItem('user') as string)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
setUser(userInfo)
|
||||||
channel.onmessage = function (event) {
|
channel.onmessage = function (event) {
|
||||||
const { type, currentSpeakUser } = event.data;
|
const { type, currentSpeakUser, uidArr } = event.data;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'currentSpeakUser':
|
case 'currentSpeakUser':
|
||||||
if (currentSpeakUser.length) {
|
if (currentSpeakUser.length) {
|
||||||
setInputValue(currentSpeakUser.join('; '))
|
setInputValue(currentSpeakUser.join('; '))
|
||||||
|
setIsMeSpeack(uidArr.find((item: any) => item === 0) ? true : false)
|
||||||
} else {
|
} else {
|
||||||
setInputValue('')
|
setInputValue('')
|
||||||
|
setIsMeSpeack(false)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -22,8 +29,8 @@ const CurrentSpeakUserWindow: React.FC = () => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={styles.currentSpeakUserWindow}>
|
<div className={styles.currentSpeakUserWindow}>
|
||||||
<div title={inputValue ? `正在说话: ${inputValue}` : `正在说话:`}>
|
<div title={`正在说话:${isMeSpeack ? user.userName : ''} ${inputValue}`}>
|
||||||
{inputValue ? `正在说话: ${inputValue}` : `正在说话:`}
|
{`正在说话:${isMeSpeack ? user.userName : ''} ${inputValue}`}
|
||||||
</div>
|
</div>
|
||||||
</div >
|
</div >
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
|
|
@ -962,11 +962,12 @@ const Meeting: React.FC = () => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const uidArr = (speakers.filter((item: any) => item.volume)).map(item => item.uid || userInfo.uid) as number[];
|
const uidArr = (speakers.filter((item: any) => item.volume)) as number[];
|
||||||
const currentSpeakUser = await checkUidsInUsers(uidArr)
|
const currentSpeakUser = await checkUidsInUsers(uidArr)
|
||||||
channel.postMessage({
|
channel.postMessage({
|
||||||
type: 'currentSpeakUser',
|
type: 'currentSpeakUser',
|
||||||
currentSpeakUser,
|
currentSpeakUser,
|
||||||
|
uidArr
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue