diff --git a/src/App.tsx b/src/App.tsx index 8fa4c1e..03de7af 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -149,7 +149,7 @@ const App: React.FC = () => { }; const handleNetworkChange = (): void => { - if (location.hash.indexOf('/meeting') !== -1) { + if (location.hash.indexOf('/meeting') === -1) { if (navigator.onLine) { message.success('网络已恢复。') setTimeout(async () => { diff --git a/src/components/JoinMeetingModal/index.tsx b/src/components/JoinMeetingModal/index.tsx index d97797b..ca801ba 100644 --- a/src/components/JoinMeetingModal/index.tsx +++ b/src/components/JoinMeetingModal/index.tsx @@ -1,6 +1,6 @@ import { GetCheckoutRoomNum, GetRoomInfo, GetRoomRtcToken } from '@/api/Home/Index'; import styles from '@/components/JoinMeetingModal/index.module.scss' -import ImageUrl from '@/utils/package/imageUrl'; +import ImageUrl from '@/utils/package/ImageUrl'; import { Modal, message } from 'antd'; import { useState, useImperativeHandle, forwardRef } from "react"; import { useNavigate } from 'react-router-dom'; diff --git a/src/components/Operation/index.tsx b/src/components/Operation/index.tsx index 2a29994..db9147a 100644 --- a/src/components/Operation/index.tsx +++ b/src/components/Operation/index.tsx @@ -1,6 +1,6 @@ import styles from '@/components/Operation/index.module.scss' import { storage } from '@/utils'; -import ImageUrl from '@/utils/package/imageUrl'; +import ImageUrl from '@/utils/package/ImageUrl'; import { InfoCircleOutlined } from '@ant-design/icons'; import { Button, Checkbox, Modal, Radio } from 'antd'; import { useEffect, useState } from "react"; diff --git a/src/components/StupWizard/index.tsx b/src/components/StupWizard/index.tsx index 9ac4b59..fae419a 100644 --- a/src/components/StupWizard/index.tsx +++ b/src/components/StupWizard/index.tsx @@ -1,5 +1,5 @@ import styles from '@/components/StupWizard/index.module.scss' -import ImageUrl from '@/utils/package/imageUrl'; +import ImageUrl from '@/utils/package/ImageUrl'; import { Button, message, Modal, Select, Slider } from 'antd'; import { useState, useImperativeHandle, forwardRef } from "react"; import agora from '@/utils/package/agora' diff --git a/src/page/Home/Index/index.tsx b/src/page/Home/Index/index.tsx index e2ecba6..90d3f30 100644 --- a/src/page/Home/Index/index.tsx +++ b/src/page/Home/Index/index.tsx @@ -4,7 +4,7 @@ import Operation from '@/components/Operation'; import { useNavigate } from 'react-router-dom'; import { Button, Input, Modal, Pagination, Empty, message } from "antd"; import { GetRoom, PostRomm, GetCheckoutRoomNum, GetRoomRtcToken, GetRoomInfo } from '@/api/Home/Index'; -import ImageUrl from '@/utils/package/imageUrl' +import ImageUrl from '@/utils/package/ImageUrl' import { PostRefresh } from '@/api/Login'; import { storage } from '@/utils'; const Index: React.FC = () => { diff --git a/src/page/Home/User/index.tsx b/src/page/Home/User/index.tsx index 001edba..5d519aa 100644 --- a/src/page/Home/User/index.tsx +++ b/src/page/Home/User/index.tsx @@ -5,7 +5,7 @@ import { Button, Input, Table, Pagination, Modal, message, Select } from "antd"; import { SearchOutlined } from '@ant-design/icons'; import { GetUserList, PostUser, PutUser, DeleteUser, PutUserPwd, GetRoleDpList } from '@/api/Home/User'; import * as CryptoJS from 'crypto-js'; -import ImageUrl from '@/utils/package/imageUrl'; +import ImageUrl from '@/utils/package/ImageUrl'; const { Column } = Table const User: React.FC = () => { const [selectedRowKeys, setSelectedRowKeys] = useState([]); diff --git a/src/page/Home/index.tsx b/src/page/Home/index.tsx index 767e8c8..4a5b0f2 100644 --- a/src/page/Home/index.tsx +++ b/src/page/Home/index.tsx @@ -5,7 +5,7 @@ import { Popconfirm } from 'antd'; import dayjs from 'dayjs'; import 'dayjs/locale/zh-cn' import { storage } from '@/utils'; -import ImageUrl from '@/utils/package/imageUrl' +import ImageUrl from '@/utils/package/ImageUrl' import Avatar from '@/components/Avatar'; dayjs.locale('zh-cn'); type navListType = { diff --git a/src/page/Login/index.tsx b/src/page/Login/index.tsx index 8aed6dc..49c1758 100644 --- a/src/page/Login/index.tsx +++ b/src/page/Login/index.tsx @@ -6,7 +6,7 @@ import { Input, Button, Checkbox, message } from "antd" import { storage } from '@/utils' import { GetCheckUser, PostLogin } from '@/api/Login' import * as CryptoJS from 'crypto-js'; -import ImageUrl from '@/utils/package/imageUrl' +import ImageUrl from '@/utils/package/ImageUrl' import { startSignalr } from '@/utils/package/signalr'; const Login: React.FC = () => { const navigate = useNavigate(); diff --git a/src/page/Meeting/index.module.scss b/src/page/Meeting/index.module.scss index ecb2be3..701f1b3 100644 --- a/src/page/Meeting/index.module.scss +++ b/src/page/Meeting/index.module.scss @@ -86,19 +86,6 @@ >div:nth-child(1) { margin-right: 20px; display: flex; - transform: rotate(180deg) scaleX(-1); - - >span { - background-color: #02B188; - width: 4px; - margin-right: 4px; - } - - @for $i from 1 through 4 { - >span:nth-child(#{$i}) { - height: calc(6px * #{$i} + 2px) - } - } } >div:nth-child(2) { diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index ff92c7e..1d3c2a7 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -10,7 +10,7 @@ import { thumbImageBufferToBase64 } from '@/utils/package/base64' import { storage } from '@/utils'; import { GetRoomFile, PostRoomFile, DeleteRoomFile, GetRoomUpFileurl, GetRoomFileDwUrl, GetRoomUser, PostOpenMicr, PostOpenCamera, PostRoomManager, DeleteRoomManager, GetRoomKickout } from '@/api/Meeting'; import axios from 'axios'; -import ImageUrl from '@/utils/package/imageUrl' +import ImageUrl from '@/utils/package/ImageUrl' import agora from '@/utils/package/agora' import { onInvoke, onSignalr, offSignalr, onStart } from '@/utils/package/signalr'; import dayjs from 'dayjs'; @@ -175,10 +175,6 @@ const Meeting: React.FC = () => { window.addEventListener('online', handleNetworkChange); window.addEventListener('offline', handleNetworkChange); time = setInterval(() => { - let effectiveTypeLength = ['slow-2g', '2g', '3g', '4g'].indexOf((navigator as any).connection.effectiveType) - if (effectiveTypeLength >= 0) { - setCurrentEffective(effectiveTypeLength + 1) - } setCurrentSeconds(currentSeconds++) }, 1000) } else { @@ -205,6 +201,16 @@ const Meeting: React.FC = () => { }); }, [roomUserList]); + useEffect(() => { + const connection = (navigator as any).connection + if (connection.downlink === 0) { + setCurrentEffective(0) + } else { + let effectiveTypeLength = ['slow-2g', '2g', '3g', '4g'].indexOf((navigator as any).connection.effectiveType) + setCurrentEffective(effectiveTypeLength + 1) + } + }, [(navigator as any).connection.effectiveType]); + useEffect(() => { onSignalr((item: any) => { switch (item.key) { @@ -558,10 +564,7 @@ const Meeting: React.FC = () => {
- {currentEffective >= 1 ? : null} - {currentEffective >= 2 ? : null} - {currentEffective >= 3 ? : null} - {currentEffective >= 4 ? : null} + {networkIcon(currentEffective)}
{changeCurrentSeconds()}
@@ -590,7 +593,7 @@ const Meeting: React.FC = () => { >
- +
{meetingContentUser(item)} @@ -1024,4 +1027,49 @@ const meetingContentError = (currentVideoId: any, item: any) => { ) } +const networkIcon = (network: number) => { + switch (network) { + case 0: + return + + + + + + + + + + + case 1: + return + + + + + + case 2: + return + + + + + + case 3: + return + + + + + + case 4: + return + + + + + + } +} + export default Meeting diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index 6d29934..1d509ed 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -11,7 +11,6 @@ import { MediaRecorderContainerFormat, MediaRecorderStreamType } from "agora-electron-sdk"; -import { onInvoke } from "./signalr"; const option: any = { appId: 'dcfc466a6ecb4a1f972630065dfb1e75', token: '',