Fix notification provider order, add comments (#1905)

* Fix notification provider order, add comments

* Remove log
This commit is contained in:
Eric Bailey 2023-11-14 16:54:02 -06:00 committed by GitHub
parent ab6e3f2c5d
commit 68767d597e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 61 additions and 45 deletions

View file

@ -72,22 +72,28 @@ const InnerApp = observer(function AppImpl() {
return null return null
} }
/*
* Session and initial state should be loaded prior to rendering below.
*/
return ( return (
<ThemeProvider theme={colorMode}> <UnreadNotifsProvider>
<analytics.Provider> <ThemeProvider theme={colorMode}>
<RootStoreProvider value={rootStore}> <analytics.Provider>
<I18nProvider i18n={i18n}> <RootStoreProvider value={rootStore}>
{/* All components should be within this provider */} <I18nProvider i18n={i18n}>
<RootSiblingParent> {/* All components should be within this provider */}
<GestureHandlerRootView style={s.h100pct}> <RootSiblingParent>
<TestCtrls /> <GestureHandlerRootView style={s.h100pct}>
<Shell /> <TestCtrls />
</GestureHandlerRootView> <Shell />
</RootSiblingParent> </GestureHandlerRootView>
</I18nProvider> </RootSiblingParent>
</RootStoreProvider> </I18nProvider>
</analytics.Provider> </RootStoreProvider>
</ThemeProvider> </analytics.Provider>
</ThemeProvider>
</UnreadNotifsProvider>
) )
}) })
@ -102,19 +108,21 @@ function App() {
return null return null
} }
/*
* NOTE: only nothing here can depend on other data or session state, since
* that is set up in the InnerApp component above.
*/
return ( return (
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<SessionProvider> <SessionProvider>
<ShellStateProvider> <ShellStateProvider>
<PrefsStateProvider> <PrefsStateProvider>
<MutedThreadsProvider> <MutedThreadsProvider>
<UnreadNotifsProvider> <InvitesStateProvider>
<InvitesStateProvider> <ModalStateProvider>
<ModalStateProvider> <InnerApp />
<InnerApp /> </ModalStateProvider>
</ModalStateProvider> </InvitesStateProvider>
</InvitesStateProvider>
</UnreadNotifsProvider>
</MutedThreadsProvider> </MutedThreadsProvider>
</PrefsStateProvider> </PrefsStateProvider>
</ShellStateProvider> </ShellStateProvider>

View file

@ -60,22 +60,28 @@ const InnerApp = observer(function AppImpl() {
return null return null
} }
/*
* Session and initial state should be loaded prior to rendering below.
*/
return ( return (
<ThemeProvider theme={colorMode}> <UnreadNotifsProvider>
<analytics.Provider> <ThemeProvider theme={colorMode}>
<RootStoreProvider value={rootStore}> <analytics.Provider>
<I18nProvider i18n={i18n}> <RootStoreProvider value={rootStore}>
{/* All components should be within this provider */} <I18nProvider i18n={i18n}>
<RootSiblingParent> {/* All components should be within this provider */}
<SafeAreaProvider> <RootSiblingParent>
<Shell /> <SafeAreaProvider>
</SafeAreaProvider> <Shell />
</RootSiblingParent> </SafeAreaProvider>
</I18nProvider> </RootSiblingParent>
<ToastContainer /> </I18nProvider>
</RootStoreProvider> <ToastContainer />
</analytics.Provider> </RootStoreProvider>
</ThemeProvider> </analytics.Provider>
</ThemeProvider>
</UnreadNotifsProvider>
) )
}) })
@ -90,19 +96,21 @@ function App() {
return null return null
} }
/*
* NOTE: only nothing here can depend on other data or session state, since
* that is set up in the InnerApp component above.
*/
return ( return (
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<SessionProvider> <SessionProvider>
<ShellStateProvider> <ShellStateProvider>
<PrefsStateProvider> <PrefsStateProvider>
<MutedThreadsProvider> <MutedThreadsProvider>
<UnreadNotifsProvider> <InvitesStateProvider>
<InvitesStateProvider> <ModalStateProvider>
<ModalStateProvider> <InnerApp />
<InnerApp /> </ModalStateProvider>
</ModalStateProvider> </InvitesStateProvider>
</InvitesStateProvider>
</UnreadNotifsProvider>
</MutedThreadsProvider> </MutedThreadsProvider>
</PrefsStateProvider> </PrefsStateProvider>
</ShellStateProvider> </ShellStateProvider>

View file

@ -32,6 +32,7 @@ export const usePreferencesQueryKey = ['getPreferences']
export function usePreferencesQuery() { export function usePreferencesQuery() {
const {agent, hasSession} = useSession() const {agent, hasSession} = useSession()
return useQuery({ return useQuery({
enabled: hasSession,
queryKey: usePreferencesQueryKey, queryKey: usePreferencesQueryKey,
queryFn: async () => { queryFn: async () => {
const res = await agent.getPreferences() const res = await agent.getPreferences()
@ -83,7 +84,6 @@ export function usePreferencesQuery() {
} }
return preferences return preferences
}, },
enabled: hasSession,
}) })
} }