diff options
Diffstat (limited to 'src/App.web.tsx')
-rw-r--r-- | src/App.web.tsx | 66 |
1 files changed, 40 insertions, 26 deletions
diff --git a/src/App.web.tsx b/src/App.web.tsx index fa5f1de93..c81ed10d3 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -18,6 +18,11 @@ import {Provider as A11yProvider} from '#/state/a11y' import {Provider as MutedThreadsProvider} from '#/state/cache/thread-mutes' import {Provider as DialogStateProvider} from '#/state/dialogs' import {listenSessionDropped} from '#/state/events' +import { + beginResolveGeolocation, + ensureGeolocationResolved, + Provider as GeolocationProvider, +} from '#/state/geolocation' import {Provider as InvitesStateProvider} from '#/state/invites' import {Provider as LightboxStateProvider} from '#/state/lightbox' import {MessagesProvider} from '#/state/messages' @@ -54,6 +59,11 @@ import {Provider as IntentDialogProvider} from '#/components/intents/IntentDialo import {Provider as PortalProvider} from '#/components/Portal' import {BackgroundNotificationPreferencesProvider} from '../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' +/** + * Begin geolocation ASAP + */ +beginResolveGeolocation() + function InnerApp() { const [isReady, setIsReady] = React.useState(false) const {currentAccount} = useSession() @@ -148,7 +158,9 @@ function App() { const [isReady, setReady] = useState(false) React.useEffect(() => { - initPersistedState().then(() => setReady(true)) + Promise.all([initPersistedState(), ensureGeolocationResolved()]).then(() => + setReady(true), + ) }, []) if (!isReady) { @@ -160,31 +172,33 @@ function App() { * that is set up in the InnerApp component above. */ return ( - <A11yProvider> - <SessionProvider> - <PrefsStateProvider> - <I18nProvider> - <ShellStateProvider> - <InvitesStateProvider> - <ModalStateProvider> - <DialogStateProvider> - <LightboxStateProvider> - <PortalProvider> - <StarterPackProvider> - <IntentDialogProvider> - <InnerApp /> - </IntentDialogProvider> - </StarterPackProvider> - </PortalProvider> - </LightboxStateProvider> - </DialogStateProvider> - </ModalStateProvider> - </InvitesStateProvider> - </ShellStateProvider> - </I18nProvider> - </PrefsStateProvider> - </SessionProvider> - </A11yProvider> + <GeolocationProvider> + <A11yProvider> + <SessionProvider> + <PrefsStateProvider> + <I18nProvider> + <ShellStateProvider> + <InvitesStateProvider> + <ModalStateProvider> + <DialogStateProvider> + <LightboxStateProvider> + <PortalProvider> + <StarterPackProvider> + <IntentDialogProvider> + <InnerApp /> + </IntentDialogProvider> + </StarterPackProvider> + </PortalProvider> + </LightboxStateProvider> + </DialogStateProvider> + </ModalStateProvider> + </InvitesStateProvider> + </ShellStateProvider> + </I18nProvider> + </PrefsStateProvider> + </SessionProvider> + </A11yProvider> + </GeolocationProvider> ) } |