Fix pagination error handling and album scroll leak in provider picker (#644)

- Stop pagination on fetch error (set hasMore=false on non-ok response or catch)
- Set hasMore=false when loading album photos (albums load all at once)
- Hide ScrollTrigger when viewing album photos to prevent timeline photo leak
This commit is contained in:
Maurice
2026-04-14 20:37:25 +02:00
parent 563b338ee3
commit d6aa18c063
+7 -2
View File
@@ -1486,8 +1486,12 @@ function ProviderPicker({ provider, userId, entries, trips, existingAssetIds, on
const assets = data.assets || []
setPhotos(prev => append ? [...prev, ...assets] : assets)
setHasMore(!!data.hasMore)
} else {
setHasMore(false)
}
} catch (e: any) { if (e.name !== 'AbortError') {} }
} catch (e: any) {
if (e.name !== 'AbortError') setHasMore(false)
}
if (!signal.aborted) { setLoading(false); setLoadingMore(false) }
}
@@ -1500,6 +1504,7 @@ function ProviderPicker({ provider, userId, entries, trips, existingAssetIds, on
const signal = cancelPending()
setLoading(true)
setPhotos([])
setHasMore(false)
try {
const res = await fetch(`/api/integrations/memories/${provider}/albums/${albumId}/photos`, { credentials: 'include', signal })
if (res.ok) setPhotos((await res.json()).assets || [])
@@ -1773,7 +1778,7 @@ function ProviderPicker({ provider, userId, entries, trips, existingAssetIds, on
)
})}
{/* Infinite scroll trigger */}
{hasMore && <ScrollTrigger onVisible={loadMorePhotos} loading={loadingMore} />}
{hasMore && !selectedAlbum && <ScrollTrigger onVisible={loadMorePhotos} loading={loadingMore} />}
</div>
)}
</div>