Skip to content

Commit 81e734b

Browse files
sethconvexclaude
andcommitted
fix: guard against hasMore=true with nextCursor=null in V4 path
When V4 returns hasMore=true but nextCursor=null, the next load-more call would pass cursor=null, triggering the replace branch instead of append. Treat this edge case as 'done' to prevent silent list reset. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b3dd6c1 commit 81e734b

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/routes/skills/-useSkillsBrowseModel.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ export function useSkillsBrowseModel({
8383
})
8484
if (generation !== fetchGeneration.current) return
8585
setListResults((prev) => (cursor ? [...prev, ...result.page] : result.page))
86-
setListCursor(result.hasMore ? (result.nextCursor ?? null) : null)
87-
setListStatus(result.hasMore ? 'idle' : 'done')
86+
const canAdvance = result.hasMore && result.nextCursor != null
87+
setListCursor(canAdvance ? result.nextCursor : null)
88+
setListStatus(canAdvance ? 'idle' : 'done')
8889
} else {
8990
const result = await convexHttp.query(api.skills.listPublicPageV3, {
9091
paginationOpts: { cursor, numItems: pageSize },

0 commit comments

Comments
 (0)