Compare commits

..

No commits in common. "d46b3027b9284dfd9382ddf543394ebeac79b187" and "b8ccf34edb24d4f96dfdab618fb078f902aa795f" have entirely different histories.

2 changed files with 9 additions and 31 deletions

View File

@ -6,7 +6,6 @@ import ImageUrl from '@/utils/package/imageUrl';
import { getKeyOpenChildWindow, setKeyOpenChildWindow } from '@/utils/package/public'; import { getKeyOpenChildWindow, setKeyOpenChildWindow } from '@/utils/package/public';
import { CaretDownOutlined, CaretUpOutlined } from '@ant-design/icons'; import { CaretDownOutlined, CaretUpOutlined } from '@ant-design/icons';
import { Button } from 'antd'; import { Button } from 'antd';
import dayjs from 'dayjs';
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
const ShareScreenWindow: React.FC = () => { const ShareScreenWindow: React.FC = () => {
const [footerLists, setFooterLists] = useState<any>([ const [footerLists, setFooterLists] = useState<any>([
@ -47,23 +46,19 @@ const ShareScreenWindow: React.FC = () => {
select: false, select: false,
}, },
]) ])
const [timeStr, setTimeStr] = useState(0) const [time, setTime] = useState('')
const [isExpand, setIsExpand] = useState(false) const [isExpand, setIsExpand] = useState(false)
const [roomUserLists, setRoomUserLists] = useState<any>([]) const [roomUserLists, setRoomUserLists] = useState<any>([])
const channel = new BroadcastChannel('meeting_channel'); const channel = new BroadcastChannel('meeting_channel');
const userInfo = JSON.parse(storage.getItem('user') as string) const userInfo = JSON.parse(storage.getItem('user') as string)
let timeout: NodeJS.Timeout;
useEffect(() => { useEffect(() => {
getRoomUser() getRoomUser()
channel.onmessage = function (event) { channel.onmessage = function (event) {
let { type, time, roomUserList, footerList, currentSpeakUserMe } = event.data; const { type, time, roomUserList, footerList, currentSpeakUserMe } = event.data;
const footerListTemplate = [...footerLists]; const footerListTemplate = [...footerLists];
switch (type) { switch (type) {
case 'time': case 'time':
setTimeStr(time) setTime(time)
timeout = setInterval(() => {
setTimeStr(time++)
}, 1000)
break; break;
case 'roomUserList': case 'roomUserList':
setRoomUserLists(roomUserList) setRoomUserLists(roomUserList)
@ -85,20 +80,8 @@ const ShareScreenWindow: React.FC = () => {
break; break;
} }
} }
channel.postMessage({
type: 'shareScreenWindowGetTime'
});
return () => {
clearInterval(timeout)
};
}, []); }, []);
const changeCurrentSeconds = (time: number): string => {
const duration = dayjs.duration(time, 'seconds');
const hours = duration.hours(); // 整数小时
const minutes = duration.minutes(); // 整数分钟
const secondsRemaining = duration.seconds(); // 剩余的秒数
return `${hours > 9 ? hours : '0' + hours}:${minutes > 9 ? minutes : '0' + minutes}:${secondsRemaining > 9 ? secondsRemaining : '0' + secondsRemaining}`
}
// 获取房间用户 // 获取房间用户
const getRoomUser = async (): Promise<void> => { const getRoomUser = async (): Promise<void> => {
const data = JSON.parse(storage.getItem('stateInfo') as string) const data = JSON.parse(storage.getItem('stateInfo') as string)
@ -129,7 +112,7 @@ const ShareScreenWindow: React.FC = () => {
<> <>
<div className={styles.shareScreenWindow} style={{ width: isExpand ? '100%' : '100%' }}> <div className={styles.shareScreenWindow} style={{ width: isExpand ? '100%' : '100%' }}>
<div className={styles.shareScreenWindowTitle}> <div className={styles.shareScreenWindowTitle}>
<span>{changeCurrentSeconds(timeStr)} </span> <span>{time} </span>
{isExpand ? <span className='drag' onClick={() => { {isExpand ? <span className='drag' onClick={() => {
channel.postMessage({ channel.postMessage({
type: 'shareScreenWindowClose' type: 'shareScreenWindowClose'

View File

@ -226,15 +226,6 @@ const Meeting: React.FC = () => {
noticeWindowPostRoomManager noticeWindowPostRoomManager
} = event.data; } = event.data;
switch (type) { switch (type) {
case 'shareScreenWindowGetTime':
setCurrentSeconds((res=>{
channel.postMessage({
type: 'time',
time: res,
});
return res
}))
break;
case 'shareScreenWindowClose': case 'shareScreenWindowClose':
await stopScreenCapture() await stopScreenCapture()
await allUserLook(userInfo.uid, userInfo.userName) await allUserLook(userInfo.uid, userInfo.userName)
@ -360,6 +351,10 @@ const Meeting: React.FC = () => {
} }
time = setInterval(() => { time = setInterval(() => {
setCurrentSeconds(currentSeconds++) setCurrentSeconds(currentSeconds++)
channel.postMessage({
type: 'time',
time: changeCurrentSeconds(),
});
}, 1000) }, 1000)
// 首次加载图标更新 // 首次加载图标更新
const firstFooterList = [...footerList] const firstFooterList = [...footerList]