diff options
Diffstat (limited to 'src/App.native.tsx')
-rw-r--r-- | src/App.native.tsx | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/src/App.native.tsx b/src/App.native.tsx index 9f38d133d..8479465fd 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -26,6 +26,12 @@ import {Provider as ModalStateProvider} from 'state/modals' import {Provider as MutedThreadsProvider} from 'state/muted-threads' import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as PrefsStateProvider} from 'state/preferences' +import { + Provider as SessionProvider, + useSession, + useSessionApi, +} from 'state/session' +import * as persisted from '#/state/persisted' import {i18n} from '@lingui/core' import {I18nProvider} from '@lingui/react' import {messages} from './locale/locales/en/messages' @@ -36,6 +42,8 @@ SplashScreen.preventAutoHideAsync() const InnerApp = observer(function AppImpl() { const colorMode = useColorMode() + const {isInitialLoad} = useSession() + const {resumeSession} = useSessionApi() const [rootStore, setRootStore] = useState<RootStoreModel | undefined>( undefined, ) @@ -52,10 +60,17 @@ const InnerApp = observer(function AppImpl() { }) }, []) + useEffect(() => { + const account = persisted.get('session').currentAccount + resumeSession(account) + }, [resumeSession]) + // show nothing prior to init - if (!rootStore) { + if (!rootStore || isInitialLoad) { + // TODO add a loading state return null } + return ( <QueryClientProvider client={queryClient}> <ThemeProvider theme={colorMode}> @@ -88,17 +103,19 @@ function App() { } return ( - <ShellStateProvider> - <PrefsStateProvider> - <MutedThreadsProvider> - <InvitesStateProvider> - <ModalStateProvider> - <InnerApp /> - </ModalStateProvider> - </InvitesStateProvider> - </MutedThreadsProvider> - </PrefsStateProvider> - </ShellStateProvider> + <SessionProvider> + <ShellStateProvider> + <PrefsStateProvider> + <MutedThreadsProvider> + <InvitesStateProvider> + <ModalStateProvider> + <InnerApp /> + </ModalStateProvider> + </InvitesStateProvider> + </MutedThreadsProvider> + </PrefsStateProvider> + </ShellStateProvider> + </SessionProvider> ) } |