diff --git a/src/App.native.tsx b/src/App.native.tsx index 14daa3bd6f..4a5f2ebea6 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -11,7 +11,6 @@ import { SafeAreaProvider, } from 'react-native-safe-area-context' import * as SplashScreen from 'expo-splash-screen' -import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' @@ -41,14 +40,12 @@ import {Provider as ShellStateProvider} from 'state/shell' import {Provider as LoggedOutViewProvider} from 'state/shell/logged-out' import {Provider as SelectedFeedProvider} from 'state/shell/selected-feed' import {TestCtrls} from 'view/com/testing/TestCtrls' -import * as Toast from 'view/com/util/Toast' import {Shell} from 'view/shell' import {ThemeProvider as Alf} from '#/alf' import {useColorModeTheme} from '#/alf/util/useColorModeTheme' import {Provider as PortalProvider} from '#/components/Portal' import {Splash} from '#/Splash' import I18nProvider from './locale/i18nProvider' -import {listenSessionDropped} from './state/events' SplashScreen.preventAutoHideAsync() @@ -62,10 +59,6 @@ function InnerApp() { // init useEffect(() => { - listenSessionDropped(() => { - Toast.show(_(msg`Sorry! Your session expired. Please log in again.`)) - }) - const account = readLastActiveAccount() resumeSession(account) }, [resumeSession, _]) diff --git a/src/state/events.ts b/src/state/events.ts index 1384abdeda..0edcbe3bf5 100644 --- a/src/state/events.ts +++ b/src/state/events.ts @@ -14,14 +14,6 @@ export function listenSoftReset(fn: () => void): UnlistenFn { return () => emitter.off('soft-reset', fn) } -export function emitSessionDropped() { - emitter.emit('session-dropped') -} -export function listenSessionDropped(fn: () => void): UnlistenFn { - emitter.on('session-dropped', fn) - return () => emitter.off('session-dropped', fn) -} - export function emitPostCreated() { emitter.emit('post-created') } diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index 582680e973..d81580807c 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -1,5 +1,7 @@ import React from 'react' import {AtpPersistSessionHandler, BskyAgent} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {track} from '#/lib/analytics/analytics' import {networkRetry} from '#/lib/async/retry' @@ -9,9 +11,9 @@ import {logger} from '#/logger' import {isWeb} from '#/platform/detection' import * as persisted from '#/state/persisted' import {useCloseAllActiveElements} from '#/state/util' +import * as Toast from 'view/com/util/Toast' import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' import {IS_DEV} from '#/env' -import {emitSessionDropped} from '../events' import { agentToSessionAccount, configureModerationForAccount, @@ -67,6 +69,7 @@ type State = { } export function Provider({children}: React.PropsWithChildren<{}>) { + const {_} = useLingui() const [isInitialLoad, setIsInitialLoad] = React.useState(true) const [isSwitchingAccounts, setIsSwitchingAccounts] = React.useState(false) const [state, setState] = React.useState({ @@ -150,7 +153,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { if (expired) { logger.warn(`session: expired`) - emitSessionDropped() + Toast.show(_(msg`Sorry! Your session expired. Please log in again.`)) } /* @@ -169,7 +172,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { }) } }, - [], + [_], ) const createAccount = React.useCallback(