From 9286ace1afbe99eaab060f5e68e86810aa2ffb4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Sun, 8 Mar 2026 17:44:13 +0100 Subject: [PATCH] nicolium: use requestIdleCallback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/nicolium/src/features/ui/index.tsx | 8 ++++---- packages/nicolium/src/init/nicolium.tsx | 1 + packages/nicolium/src/polyfills.ts | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 packages/nicolium/src/polyfills.ts 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); +}