Skip to content

Commit abd8459

Browse files
committed
refactro: useNetworkStatus hook
1 parent f3e1d76 commit abd8459

File tree

6 files changed

+25
-33
lines changed

6 files changed

+25
-33
lines changed

src/renderer/src/atoms/progress.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { atom } from 'jotai'
2+
3+
export const updateProgressAtom = atom<{
4+
progress: number
5+
status: 'downloading' | 'installing'
6+
} | null>(null)

src/renderer/src/components/layout/sidebar/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
import { updateProgressAtom } from '@renderer/atoms/progress'
12
import { useAppSettingsValue } from '@renderer/atoms/settings/app'
23
import Show from '@renderer/components/common/Show'
34
import { Logo } from '@renderer/components/icons/Logo'
45
import { Alert, AlertDescription, AlertTitle } from '@renderer/components/ui/alert'
56
import { Button, ButtonWithIcon } from '@renderer/components/ui/button'
67
import { Progress } from '@renderer/components/ui/progress'
78
import { PROJECT_NAME } from '@renderer/constants'
8-
import { updateProgressAtom, useNetworkStatus } from '@renderer/initialize/network'
9+
import { useNetworkStatus } from '@renderer/hooks/use-network-status'
910
import { tipcClient } from '@renderer/lib/client'
1011
import { getStorageNS } from '@renderer/lib/ns'
1112
import { cn, isMac, isWeb } from '@renderer/lib/utils'
@@ -101,7 +102,7 @@ export const NetWorkCheck = () => {
101102
<Alert style={{ fontWeight: 500 }} variant="destructive">
102103
<AlertCircle className="size-4" />
103104
<AlertTitle>网络异常</AlertTitle>
104-
<AlertDescription>部分功能使用受限</AlertDescription>
105+
<AlertDescription>请检查网络连接</AlertDescription>
105106
</Alert>
106107
)
107108
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { useCallback, useSyncExternalStore } from 'react'
2+
3+
export const useNetworkStatus = () => {
4+
return useSyncExternalStore(
5+
useCallback((callback: () => void) => {
6+
window.addEventListener('online', callback)
7+
window.addEventListener('offline', callback)
8+
return () => {
9+
window.removeEventListener('online', callback)
10+
window.removeEventListener('offline', callback)
11+
}
12+
}, []),
13+
() => navigator.onLine,
14+
)
15+
}

src/renderer/src/initialize/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import { subscribeNetWorkStatus } from '@renderer/initialize/network'
21
import { scan } from 'react-scan'
32

43
import { isDev } from '../lib/env'
54
import { initializeDayjs } from './date'
65
import { initializeSentry } from './sentry'
76

87
export const initializeApp = () => {
9-
subscribeNetWorkStatus()
108
initializeDayjs()
119
initializeSentry()
1210

src/renderer/src/initialize/network.ts

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/renderer/src/providers/TipcListener.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { updateProgressAtom } from '@renderer/atoms/progress'
12
import type { useAppSettingsValue } from '@renderer/atoms/settings/app'
23
import { appSettingAtom } from '@renderer/atoms/settings/app'
34
import { jotaiStore } from '@renderer/atoms/store'
@@ -6,7 +7,6 @@ import { useVideo } from '@renderer/components/modules/player/loading/hooks'
67
import { useSettingModal } from '@renderer/components/modules/settings/hooks'
78
import { settingTabs } from '@renderer/components/modules/settings/tabs'
89
import { toast } from '@renderer/components/ui/toast/use-toast'
9-
import { updateProgressAtom } from '@renderer/initialize/network'
1010
import { handlers } from '@renderer/lib/client'
1111
import { getStorageNS } from '@renderer/lib/ns'
1212
import { RouteName } from '@renderer/router'

0 commit comments

Comments
 (0)