Add back isInitialLoad to session (#2155)

zio/stable
Eric Bailey 2023-12-09 17:10:12 -06:00 committed by GitHub
parent 6b3eb401b0
commit 97b54b51c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 2 deletions

View File

@ -39,7 +39,7 @@ SplashScreen.preventAutoHideAsync()
function InnerApp() {
const colorMode = useColorMode()
const {currentAccount} = useSession()
const {isInitialLoad, currentAccount} = useSession()
const {resumeSession} = useSessionApi()
// init
@ -53,6 +53,9 @@ function InnerApp() {
resumeSession(account)
}, [resumeSession])
// wait for session to resume
if (isInitialLoad) return null
return (
<React.Fragment
// Resets the entire tree below when it changes:

View File

@ -30,7 +30,7 @@ import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unre
import * as persisted from '#/state/persisted'
function InnerApp() {
const {currentAccount} = useSession()
const {isInitialLoad, currentAccount} = useSession()
const {resumeSession} = useSessionApi()
const colorMode = useColorMode()
@ -40,6 +40,9 @@ function InnerApp() {
resumeSession(account)
}, [resumeSession])
// wait for session to resume
if (isInitialLoad) return null
return (
<React.Fragment
// Resets the entire tree below when it changes:

View File

@ -28,6 +28,7 @@ export function getAgent() {
export type SessionAccount = persisted.PersistedAccount
export type SessionState = {
isInitialLoad: boolean
isSwitchingAccounts: boolean
accounts: SessionAccount[]
currentAccount: SessionAccount | undefined
@ -75,6 +76,7 @@ export type ApiContext = {
}
const StateContext = React.createContext<StateContext>({
isInitialLoad: true,
isSwitchingAccounts: false,
accounts: [],
currentAccount: undefined,
@ -150,6 +152,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
const queryClient = useQueryClient()
const isDirty = React.useRef(false)
const [state, setState] = React.useState<SessionState>({
isInitialLoad: true,
isSwitchingAccounts: false,
accounts: persisted.get('session').accounts,
currentAccount: undefined, // assume logged out to start
@ -434,6 +437,11 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
}
} catch (e) {
logger.error(`session: resumeSession failed`, {error: e})
} finally {
setState(s => ({
...s,
isInitialLoad: false,
}))
}
},
[initSession],