Add back isInitialLoad to session (#2155)
parent
6b3eb401b0
commit
97b54b51c6
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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],
|
||||
|
|
Loading…
Reference in New Issue