From 0a411fd5c59f8cd1898805e281668f107856ba35 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 30 Oct 2024 11:35:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E5=B1=8F=E5=B9=95=E6=96=AD=E5=BC=80=E7=BD=91=E7=BB=9C=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeetingDisconnected/index.module.scss | 4 +++ src/components/MeetingDisconnected/index.tsx | 30 +++++++++++++++++++ src/page/Meeting/index.tsx | 21 ++++++++++++- src/utils/styles/App.scss | 1 + 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/components/MeetingDisconnected/index.module.scss create mode 100644 src/components/MeetingDisconnected/index.tsx diff --git a/src/components/MeetingDisconnected/index.module.scss b/src/components/MeetingDisconnected/index.module.scss new file mode 100644 index 0000000..778e718 --- /dev/null +++ b/src/components/MeetingDisconnected/index.module.scss @@ -0,0 +1,4 @@ +.meetingDisconnected { + color: white; + font-size: 24px; +} \ No newline at end of file diff --git a/src/components/MeetingDisconnected/index.tsx b/src/components/MeetingDisconnected/index.tsx new file mode 100644 index 0000000..ca25e57 --- /dev/null +++ b/src/components/MeetingDisconnected/index.tsx @@ -0,0 +1,30 @@ +import styles from '@/components/MeetingDisconnected/index.module.scss' +import { InfoCircleOutlined } from '@ant-design/icons'; +import { Modal } from 'antd'; +import { useState, useImperativeHandle, forwardRef } from "react"; +const MeetingDisconnected = forwardRef((props: any, ref: any) => { + useImperativeHandle(ref, () => ({ + changeModal: (bool: boolean) => { + setIsMeetingDisconnectedModal(bool) + } + })) + const [isMeetingDisconnectedModal, setIsMeetingDisconnectedModal] = useState(false); + return ( + <> + +
+ 网络已断开,尝试重新连接中... +
+
+ + ) +}) + +export default MeetingDisconnected \ No newline at end of file diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 50f2cbb..4cbee9c 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -22,6 +22,7 @@ import UserVideo from '@/components/UserVideo'; import { role } from '@/config/role'; import { fixWebmDuration } from "webm-duration-fix-buffer"; import { getKeyOpenChildWindow, setKeyOpenChildWindow } from '@/utils/package/public'; +import MeetingDisconnected from '@/components/MeetingDisconnected'; const { confirm } = Modal; const { exec } = require('child_process'); const fs = require('fs').promises; @@ -34,6 +35,7 @@ const Meeting: React.FC = () => { const invitingPersonnelRef = useRef(); const stupWizardRef = useRef(); const equipmentManagementRef = useRef(); + const meetingDisconnectedRef = useRef(); const [isClicked, setIsClicked] = useState(false); const [statusList, setStatusList] = useState({ userList: false, @@ -166,7 +168,8 @@ const Meeting: React.FC = () => { const [_currentRequestSpeakType, setCurrentRequestSpeakType] = useState<'video' | 'audio' | ''>('') const [_mediaStream, setMediaStream] = useState('') const [isShare, setIsShare] = useState(null) - const [isSharePopConfirm, setIsSharePopConfirm] = useState(false) + const [isSharePopConfirm, setIsSharePopConfirm] = useState(false) + const [_isNetworkDisconnected, setIsNetworkDisconnected] = useState(false) const [isShareUser, setIsShareUser] = useState(null) const [currentLookUserStatus, setCurrentLookUserStatus] = useState<0 | 1 | 2 | 3 | 4>(1) const [clickCurrentLookUserStatus, setClickCurrentLookUserStatus] = useState(true) @@ -1037,6 +1040,14 @@ const Meeting: React.FC = () => { const reconnectingCode = [2, 16, 11, 13, 14, 12] if (stateNumber === 4 && reconnectingCode.indexOf(reason) >= 0) { message.error('网络断开,请检查网络') + setIsScreenCapture(bool => { + if (bool) { + meetingDisconnectedRef.current.changeModal(true) + setIsNetworkDisconnected(true) + stopScreenCapture() + } + return bool + }) } }, onLocalVideoStateChanged: async (_source: VideoSourceType, _state: LocalVideoStreamState, reason: LocalVideoStreamReason) => { @@ -1732,6 +1743,13 @@ const Meeting: React.FC = () => { userId: userInfo.uid }) } + setIsNetworkDisconnected(bool => { + if (bool) { + meetingDisconnectedRef.current.changeModal(false) + allUserLook(userItem.screenShareId, userItem.userName) + } + return false + }) setIsScreenCapture(bool => { if (bool) { allUserLook(userItem.screenShareId, userItem.userName) @@ -2858,6 +2876,7 @@ const Meeting: React.FC = () => { + ) } diff --git a/src/utils/styles/App.scss b/src/utils/styles/App.scss index dc87e74..ab2bc9a 100644 --- a/src/utils/styles/App.scss +++ b/src/utils/styles/App.scss @@ -351,6 +351,7 @@ $pagination-hover-background-color: #5575F2; // ant-notification .ant-notification { -webkit-app-region: no-drag; + .ant-notification-notice-wrapper { background-color: #1F2022; From 9b413770550a69aa7305adb9bce8301558a07979 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 30 Oct 2024 11:44:14 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 4cbee9c..dc29254 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1746,13 +1746,13 @@ const Meeting: React.FC = () => { setIsNetworkDisconnected(bool => { if (bool) { meetingDisconnectedRef.current.changeModal(false) - allUserLook(userItem.screenShareId, userItem.userName) + allUserLook(userItem.uid, userItem.userName) } return false }) setIsScreenCapture(bool => { if (bool) { - allUserLook(userItem.screenShareId, userItem.userName) + allUserLook(userItem.uid, userItem.userName) } return bool }) From 1fc69f8c4b33c6c87bf7f3b5550bf90c1c3ae794 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 30 Oct 2024 14:11:24 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MeetingDisconnected/index.module.scss | 8 ++++++++ src/components/MeetingDisconnected/index.tsx | 16 +++------------- src/page/Meeting/index.tsx | 4 ++-- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/components/MeetingDisconnected/index.module.scss b/src/components/MeetingDisconnected/index.module.scss index 778e718..66be3a7 100644 --- a/src/components/MeetingDisconnected/index.module.scss +++ b/src/components/MeetingDisconnected/index.module.scss @@ -1,4 +1,12 @@ .meetingDisconnected { + position: absolute; + left: 50%; + transform: translate(-50%, 80px); + top: 0; color: white; font-size: 24px; + z-index: 5; + background-color: #07090B; + padding: 20px 40px; + border-radius: 20px; } \ No newline at end of file diff --git a/src/components/MeetingDisconnected/index.tsx b/src/components/MeetingDisconnected/index.tsx index ca25e57..077794a 100644 --- a/src/components/MeetingDisconnected/index.tsx +++ b/src/components/MeetingDisconnected/index.tsx @@ -1,6 +1,5 @@ import styles from '@/components/MeetingDisconnected/index.module.scss' import { InfoCircleOutlined } from '@ant-design/icons'; -import { Modal } from 'antd'; import { useState, useImperativeHandle, forwardRef } from "react"; const MeetingDisconnected = forwardRef((props: any, ref: any) => { useImperativeHandle(ref, () => ({ @@ -11,18 +10,9 @@ const MeetingDisconnected = forwardRef((props: any, ref: any) => { const [isMeetingDisconnectedModal, setIsMeetingDisconnectedModal] = useState(false); return ( <> - -
- 网络已断开,尝试重新连接中... -
-
+ {isMeetingDisconnectedModal ?
+ 网络已断开,尝试重新连接中... +
: null} ) }) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index dc29254..f4b67dd 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -1040,9 +1040,9 @@ const Meeting: React.FC = () => { const reconnectingCode = [2, 16, 11, 13, 14, 12] if (stateNumber === 4 && reconnectingCode.indexOf(reason) >= 0) { message.error('网络断开,请检查网络') + meetingDisconnectedRef.current.changeModal(true) setIsScreenCapture(bool => { if (bool) { - meetingDisconnectedRef.current.changeModal(true) setIsNetworkDisconnected(true) stopScreenCapture() } @@ -1734,6 +1734,7 @@ const Meeting: React.FC = () => { enableCamera: !footerList[0][1].active }) message.success('网络已连接。') + meetingDisconnectedRef.current.changeModal(false) setRoomUserList((res: any) => { let userItem = res.find((item: any) => item.uid === userInfo.uid) if (userItem.isRoomManager) { @@ -1745,7 +1746,6 @@ const Meeting: React.FC = () => { } setIsNetworkDisconnected(bool => { if (bool) { - meetingDisconnectedRef.current.changeModal(false) allUserLook(userItem.uid, userItem.userName) } return false