From 30856f996da7a14568b56b9a2fcfaa0ee4501fe0 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sun, 14 Dec 2025 01:01:55 +0100 Subject: [PATCH] Always revalidate first page for local source browse requests fixes #1041 --- src/features/source/browse/screens/SourceMangas.tsx | 2 +- src/lib/requests/RequestManager.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/features/source/browse/screens/SourceMangas.tsx b/src/features/source/browse/screens/SourceMangas.tsx index 77090914..9d4ceb20 100644 --- a/src/features/source/browse/screens/SourceMangas.tsx +++ b/src/features/source/browse/screens/SourceMangas.tsx @@ -404,7 +404,7 @@ export function SourceMangas() { return; } - const requiresClear = SPECIAL_ED_SOURCES.REVALIDATION.includes(sourceId); + const requiresClear = SPECIAL_ED_SOURCES.REVALIDATION_UNSUPPORTED.includes(sourceId); if (!requiresClear) { return; } diff --git a/src/lib/requests/RequestManager.ts b/src/lib/requests/RequestManager.ts index 365ee1c7..9ba6e16b 100644 --- a/src/lib/requests/RequestManager.ts +++ b/src/lib/requests/RequestManager.ts @@ -350,6 +350,7 @@ import { useLocalStorage } from '@/base/hooks/useStorage.tsx'; import { KO_SYNC_LOGIN, KO_SYNC_LOGOUT } from '@/lib/graphql/mutations/KoreaderSyncMutation.ts'; import { GET_KO_SYNC_STATUS } from '@/lib/graphql/queries/KoreaderSyncQuery.ts'; import { ImageCache } from '@/lib/service-worker/ImageCache.ts'; +import { Sources } from '@/features/source/services/Sources.ts'; enum GQLMethod { QUERY = 'QUERY', @@ -453,9 +454,10 @@ const CACHE_PAGES_KEY = 'GET_SOURCE_MANGAS_FETCH_PAGES'; const CACHE_RESULTS_KEY = 'GET_SOURCE_MANGAS_FETCH'; export const SPECIAL_ED_SOURCES = { - REVALIDATION: [ + REVALIDATION_UNSUPPORTED: [ '57122881048805941', // e-hentai ], + REVALIDATION_SKIP_TTL: [Sources.LOCAL_SOURCE_ID], }; // TODO - extract logic to reduce the size of this file... grew waaaaaaaaaaaaay too big peepoFat @@ -594,7 +596,7 @@ export class RequestManager { maxPage: number, signal: AbortSignal, ): Promise { - if (SPECIAL_ED_SOURCES.REVALIDATION.includes(sourceId)) { + if (SPECIAL_ED_SOURCES.REVALIDATION_UNSUPPORTED.includes(sourceId)) { return; } @@ -603,7 +605,7 @@ export class RequestManager { Date.now() - (this.cache.getFetchTimestampFor(cacheResultsKey, getVariablesFor(pageToRevalidate)) ?? 0) >= d(5).minutes.inWholeMilliseconds; - if (isFirstPage && !isTtlReached) { + if (isFirstPage && !isTtlReached && !SPECIAL_ED_SOURCES.REVALIDATION_SKIP_TTL.includes(sourceId)) { return; }