mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-11 16:39:15 +08:00
refactor: Move fullscreen notification logic to a separate hook
This commit is contained in:
parent
26dd931f70
commit
06b2ca9149
@ -1,8 +1,6 @@
|
|||||||
import '@renderer/databases'
|
import '@renderer/databases'
|
||||||
|
|
||||||
import store, { persistor } from '@renderer/store'
|
import store, { persistor } from '@renderer/store'
|
||||||
import { useEffect } from 'react'
|
|
||||||
import { useTranslation } from 'react-i18next'
|
|
||||||
import { Provider } from 'react-redux'
|
import { Provider } from 'react-redux'
|
||||||
import { HashRouter, Route, Routes } from 'react-router-dom'
|
import { HashRouter, Route, Routes } from 'react-router-dom'
|
||||||
import { PersistGate } from 'redux-persist/integration/react'
|
import { PersistGate } from 'redux-persist/integration/react'
|
||||||
@ -23,24 +21,6 @@ import SettingsPage from './pages/settings/SettingsPage'
|
|||||||
import TranslatePage from './pages/translate/TranslatePage'
|
import TranslatePage from './pages/translate/TranslatePage'
|
||||||
|
|
||||||
function App(): JSX.Element {
|
function App(): JSX.Element {
|
||||||
const { t } = useTranslation()
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const cleanup = window.electron.ipcRenderer.on('fullscreen-status-changed', (_, isFullscreen) => {
|
|
||||||
if (isFullscreen) {
|
|
||||||
window.message.info({
|
|
||||||
content: t('common.fullscreen'),
|
|
||||||
duration: 3,
|
|
||||||
key: 'fullscreen-notification'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
cleanup()
|
|
||||||
}
|
|
||||||
}, [t])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
<ThemeProvider>
|
<ThemeProvider>
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import { useLiveQuery } from 'dexie-react-hooks'
|
|||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
import { useDefaultModel } from './useAssistant'
|
import { useDefaultModel } from './useAssistant'
|
||||||
|
import useFullScreenNotice from './useFullScreenNotice'
|
||||||
import { useRuntime } from './useRuntime'
|
import { useRuntime } from './useRuntime'
|
||||||
import { useSettings } from './useSettings'
|
import { useSettings } from './useSettings'
|
||||||
import useUpdateHandler from './useUpdateHandler'
|
import useUpdateHandler from './useUpdateHandler'
|
||||||
@ -22,6 +23,8 @@ export function useAppInit() {
|
|||||||
|
|
||||||
useUpdateHandler()
|
useUpdateHandler()
|
||||||
|
|
||||||
|
useFullScreenNotice()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
avatar?.value && dispatch(setAvatar(avatar.value))
|
avatar?.value && dispatch(setAvatar(avatar.value))
|
||||||
}, [avatar, dispatch])
|
}, [avatar, dispatch])
|
||||||
|
|||||||
25
src/renderer/src/hooks/useFullScreenNotice.ts
Normal file
25
src/renderer/src/hooks/useFullScreenNotice.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { isWindows } from '@renderer/config/constant'
|
||||||
|
import { useEffect } from 'react'
|
||||||
|
import { useTranslation } from 'react-i18next'
|
||||||
|
|
||||||
|
export function useFullScreenNotice() {
|
||||||
|
const { t } = useTranslation()
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const cleanup = window.electron.ipcRenderer.on('fullscreen-status-changed', (_, isFullscreen) => {
|
||||||
|
if (isWindows && isFullscreen) {
|
||||||
|
window.message.info({
|
||||||
|
content: t('common.fullscreen'),
|
||||||
|
duration: 3,
|
||||||
|
key: 'fullscreen-notification'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
cleanup()
|
||||||
|
}
|
||||||
|
}, [t])
|
||||||
|
}
|
||||||
|
|
||||||
|
export default useFullScreenNotice
|
||||||
Loading…
Reference in New Issue
Block a user