diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index b4c366272c..84d877c658 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -1,8 +1,6 @@ import '@renderer/databases' import store, { persistor } from '@renderer/store' -import { useEffect } from 'react' -import { useTranslation } from 'react-i18next' import { Provider } from 'react-redux' import { HashRouter, Route, Routes } from 'react-router-dom' import { PersistGate } from 'redux-persist/integration/react' @@ -23,24 +21,6 @@ import SettingsPage from './pages/settings/SettingsPage' import TranslatePage from './pages/translate/TranslatePage' 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 ( diff --git a/src/renderer/src/hooks/useAppInit.ts b/src/renderer/src/hooks/useAppInit.ts index 8697b36d07..c1460e6faa 100644 --- a/src/renderer/src/hooks/useAppInit.ts +++ b/src/renderer/src/hooks/useAppInit.ts @@ -9,6 +9,7 @@ import { useLiveQuery } from 'dexie-react-hooks' import { useEffect } from 'react' import { useDefaultModel } from './useAssistant' +import useFullScreenNotice from './useFullScreenNotice' import { useRuntime } from './useRuntime' import { useSettings } from './useSettings' import useUpdateHandler from './useUpdateHandler' @@ -22,6 +23,8 @@ export function useAppInit() { useUpdateHandler() + useFullScreenNotice() + useEffect(() => { avatar?.value && dispatch(setAvatar(avatar.value)) }, [avatar, dispatch]) diff --git a/src/renderer/src/hooks/useFullScreenNotice.ts b/src/renderer/src/hooks/useFullScreenNotice.ts new file mode 100644 index 0000000000..e81f9fca57 --- /dev/null +++ b/src/renderer/src/hooks/useFullScreenNotice.ts @@ -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