Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions packages/manager/.changeset/pr-10663-fixed-1720582006219.md
Original file line number Diff line number Diff line change
@@ -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))
29 changes: 7 additions & 22 deletions packages/manager/src/hooks/useInitialRequests.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { getUserPreferences } from '@linode/api-v4/lib/profile';
import { useQueryClient } from '@tanstack/react-query';
import * as React from 'react';

Expand Down Expand Up @@ -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
Expand All @@ -57,26 +54,14 @@ export const useInitialRequests = () => {
return;
}

// Initial Requests: Things we need immediately (before rendering the app)
const dataFetchingPromises: Promise<any>[] = [
// 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);
// Initial Requests: Things we want immediately (before rendering the app)
await Promise.all([
queryClient.prefetchQuery(accountQueries.account),
queryClient.prefetchQuery(accountQueries.settings),
queryClient.prefetchQuery(profileQueries.profile()),
queryClient.prefetchQuery(profileQueries.preferences),
]);
} finally {
setIsLoading(false);
}
Expand Down