diff --git a/packages/nicolium/src/features/ui/index.tsx b/packages/nicolium/src/features/ui/index.tsx index 076615877..f34b51351 100644 --- a/packages/nicolium/src/features/ui/index.tsx +++ b/packages/nicolium/src/features/ui/index.tsx @@ -92,13 +92,13 @@ const UI: React.FC = React.memo(() => { } if (account.locked) { - setTimeout(() => prefetchFollowRequests(client), 700); + requestIdleCallback(() => prefetchFollowRequests(client), { timeout: 2000 }); } if (features.scheduledStatuses) { - setTimeout(() => { - queryClient.prefetchInfiniteQuery(scheduledStatusesQueryOptions); - }, 900); + requestIdleCallback(() => queryClient.prefetchInfiniteQuery(scheduledStatusesQueryOptions), { + timeout: 2000, + }); } }; diff --git a/packages/nicolium/src/init/nicolium.tsx b/packages/nicolium/src/init/nicolium.tsx index b111c616b..dc4204c58 100644 --- a/packages/nicolium/src/init/nicolium.tsx +++ b/packages/nicolium/src/init/nicolium.tsx @@ -12,6 +12,7 @@ import { store } from '@/store'; import NicoliumHead from './nicolium-head'; import NicoliumLoad from './nicolium-load'; import NicoliumMount from './nicolium-mount'; +import '../polyfills'; // Preload happens synchronously store.dispatch(preload()); diff --git a/packages/nicolium/src/polyfills.ts b/packages/nicolium/src/polyfills.ts new file mode 100644 index 000000000..99fbf9b64 --- /dev/null +++ b/packages/nicolium/src/polyfills.ts @@ -0,0 +1,6 @@ +if (!('requestIdleCallback' in window)) { + (window as Window).requestIdleCallback = ( + cb: IdleRequestCallback, + options?: IdleRequestOptions, + ) => setTimeout(cb, options?.timeout ?? 1000); +}