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,7 +72,12 @@ const InnerApp = observer(function AppImpl() {
return null return null
} }
/*
* Session and initial state should be loaded prior to rendering below.
*/
return ( return (
<UnreadNotifsProvider>
<ThemeProvider theme={colorMode}> <ThemeProvider theme={colorMode}>
<analytics.Provider> <analytics.Provider>
<RootStoreProvider value={rootStore}> <RootStoreProvider value={rootStore}>
@ -88,6 +93,7 @@ const InnerApp = observer(function AppImpl() {
</RootStoreProvider> </RootStoreProvider>
</analytics.Provider> </analytics.Provider>
</ThemeProvider> </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,7 +60,12 @@ const InnerApp = observer(function AppImpl() {
return null return null
} }
/*
* Session and initial state should be loaded prior to rendering below.
*/
return ( return (
<UnreadNotifsProvider>
<ThemeProvider theme={colorMode}> <ThemeProvider theme={colorMode}>
<analytics.Provider> <analytics.Provider>
<RootStoreProvider value={rootStore}> <RootStoreProvider value={rootStore}>
@ -76,6 +81,7 @@ const InnerApp = observer(function AppImpl() {
</RootStoreProvider> </RootStoreProvider>
</analytics.Provider> </analytics.Provider>
</ThemeProvider> </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,
}) })
} }