From b97f584731311ba8dc48286a06a9ac00ca51438f Mon Sep 17 00:00:00 2001 From: Banks Nussman Date: Tue, 9 Jul 2024 23:13:19 -0400 Subject: [PATCH 1/3] use query key factory for initial preferences fetch --- .../manager/src/hooks/useInitialRequests.ts | 28 ++++--------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/packages/manager/src/hooks/useInitialRequests.ts b/packages/manager/src/hooks/useInitialRequests.ts index ec1dca356d6..6944206f442 100644 --- a/packages/manager/src/hooks/useInitialRequests.ts +++ b/packages/manager/src/hooks/useInitialRequests.ts @@ -1,4 +1,3 @@ -import { getUserPreferences } from '@linode/api-v4/lib/profile'; import { useQueryClient } from '@tanstack/react-query'; import * as React from 'react'; @@ -47,8 +46,6 @@ export const useInitialRequests = () => { * 1. App begins load; users see splash screen * 2. Initial requests (in makeInitialRequests) are made (account, profile, etc.) * 3. Initial requests complete; app is marked as done loading - * 4. As splash screen goes away, secondary requests (in makeSecondaryRequests -- Linodes, types, regions) - * are kicked off */ const makeInitialRequests = async () => { // When loading Lish we avoid all this extra data loading @@ -57,26 +54,13 @@ export const useInitialRequests = () => { return; } - // Initial Requests: Things we need immediately (before rendering the app) - const dataFetchingPromises: Promise[] = [ - // Fetch user's account information - queryClient.prefetchQuery(accountQueries.account), - - // Is a user managed - queryClient.prefetchQuery(accountQueries.settings), - - // Username and whether a user is restricted - queryClient.prefetchQuery(profileQueries.profile()), - - // preferences - queryClient.prefetchQuery({ - queryFn: getUserPreferences, - queryKey: ['preferences'], - }), - ]; - try { - await Promise.all(dataFetchingPromises); + await Promise.all([ + queryClient.prefetchQuery(accountQueries.account), + queryClient.prefetchQuery(accountQueries.settings), + queryClient.prefetchQuery(profileQueries.profile()), + queryClient.prefetchQuery(profileQueries.preferences), + ]); } finally { setIsLoading(false); } From dd51dda51be5402ee0038331da0a2d1f2f7cf9e3 Mon Sep 17 00:00:00 2001 From: Banks Nussman Date: Tue, 9 Jul 2024 23:26:46 -0400 Subject: [PATCH 2/3] Added changeset: User Preferences not properly being cached when the app loads --- packages/manager/.changeset/pr-10663-fixed-1720582006219.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-10663-fixed-1720582006219.md diff --git a/packages/manager/.changeset/pr-10663-fixed-1720582006219.md b/packages/manager/.changeset/pr-10663-fixed-1720582006219.md new file mode 100644 index 00000000000..a89f72829f2 --- /dev/null +++ b/packages/manager/.changeset/pr-10663-fixed-1720582006219.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Fixed +--- + +User Preferences not properly being cached when the app loads ([#10663](https://github.com/linode/manager/pull/10663)) From c335301def080367b367790b8f3c9bccb36145a8 Mon Sep 17 00:00:00 2001 From: Banks Nussman Date: Tue, 9 Jul 2024 23:28:05 -0400 Subject: [PATCH 3/3] add back comment --- packages/manager/src/hooks/useInitialRequests.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/manager/src/hooks/useInitialRequests.ts b/packages/manager/src/hooks/useInitialRequests.ts index 6944206f442..83acc8abeee 100644 --- a/packages/manager/src/hooks/useInitialRequests.ts +++ b/packages/manager/src/hooks/useInitialRequests.ts @@ -55,6 +55,7 @@ export const useInitialRequests = () => { } try { + // Initial Requests: Things we want immediately (before rendering the app) await Promise.all([ queryClient.prefetchQuery(accountQueries.account), queryClient.prefetchQuery(accountQueries.settings),