Fix episodes on the series page serving stale items

This commit is contained in:
HighImKevin committed 2026-10-15 12:15:23 -04:00
1 parent c5ec4213e2
commit 7ce28dcc27
2 files changed
+32 -54

No files matched your search

+26 -1
View File
@@ -1374,15 +1374,40 @@
const resolveFreshItems = async () => {
if (results.length > 1) {
const merged = ApiHelper.mergeMultiQueryResults(results, sectionConfig);
// Kick SWR so _refreshPromise is attached when cache is stale
const raw =
typeof merged.result?.ensureData === 'function'
? await merged.result.ensureData()
: await (merged.result?.dataPromise ?? merged.result?.data);
const hasRefresh = results.some((r) => r && r._refreshPromise);
if (hasRefresh) {
const allData = await Promise.all(
results.map((r) => r._refreshPromise || Promise.resolve(r.data)),
);
const itemsByFreshQuery = [];
allData.forEach((data) => {
if (data?.Items) itemsByFreshQuery.push(data.Items);
else if (Array.isArray(data)) itemsByFreshQuery.push(data);
});
return postProcessItemsByQuery(sectionConfig, itemsByFreshQuery);
}
return extractItemsFromQueryPayload(raw);
}
if (results.length === 1) {
const qr = results[0];
const raw = typeof qr.ensureData === 'function' ? await qr.ensureData() : await (qr.dataPromise ?? qr.data);
// Kick SWR so _refreshPromise is attached when cache is stale
const raw =
typeof qr.ensureData === 'function'
? await qr.ensureData()
: await (qr.dataPromise ?? qr.data);
if (qr._refreshPromise) {
const fresh = await qr._refreshPromise;
return postProcessItems(sectionConfig, extractItemsFromQueryPayload(fresh));
}
return postProcessItems(sectionConfig, extractItemsFromQueryPayload(raw));
}
return [];