Compare commits

...

1 Commits

Author SHA1 Message Date
Dan Abramov e3f1991571 [Session] Inline session dropped toast logic 2024-05-01 23:43:06 +01:00
3 changed files with 6 additions and 18 deletions
-7
View File
@@ -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, _])
-8
View File
@@ -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')
}
+6 -3
View File
@@ -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<State>({
@@ -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<SessionApiContext['createAccount']>(