Compare commits
No commits in common. "d46b3027b9284dfd9382ddf543394ebeac79b187" and "b8ccf34edb24d4f96dfdab618fb078f902aa795f" have entirely different histories.
d46b3027b9
...
b8ccf34edb
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue