From 68915bfac48fb8b12bb8826d8b189adc92a25ca1 Mon Sep 17 00:00:00 2001 From: EnixCoda Date: Fri, 16 Jan 2026 22:13:48 +0800 Subject: [PATCH] fix: handle paginated pull request files page --- src/platforms/GitHub/API.ts | 9 ++++++--- src/platforms/GitHub/getPullRequestTreeData.ts | 7 ++++++- src/platforms/GitHub/utils.ts | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/platforms/GitHub/API.ts b/src/platforms/GitHub/API.ts index 8a23e0c..3a1db86 100644 --- a/src/platforms/GitHub/API.ts +++ b/src/platforms/GitHub/API.ts @@ -148,10 +148,13 @@ export async function getPullPageDocuments( userName: string, repoName: string, pullId: string, - document?: Document, + preset?: { + url: string + document: Document + }, ) { - if (document) { - return continuousLoadFragmentedPages(window.location.href, document) + if (preset) { + return continuousLoadFragmentedPages(preset.url, preset.document) } // Response of this contains view of few files but is not complete. return continuousLoadFragmentedPagesFromUrl(`/${userName}/${repoName}/pull/${pullId}/files`) diff --git a/src/platforms/GitHub/getPullRequestTreeData.ts b/src/platforms/GitHub/getPullRequestTreeData.ts index 51ec3ea..925bc00 100644 --- a/src/platforms/GitHub/getPullRequestTreeData.ts +++ b/src/platforms/GitHub/getPullRequestTreeData.ts @@ -42,7 +42,12 @@ export async function getPullRequestTreeData( userName, repoName, pullId, - isInPullFilesPage() ? document : undefined, + isInPullFilesPage() + ? { + url: window.location.href, + document, + } + : undefined, ) const diffSummaryMap = resolveDiffSummaryMap(docs) diff --git a/src/platforms/GitHub/utils.ts b/src/platforms/GitHub/utils.ts index b3c0158..33b60cd 100644 --- a/src/platforms/GitHub/utils.ts +++ b/src/platforms/GitHub/utils.ts @@ -109,7 +109,8 @@ export async function continuousLoadFragmentedPages( const src = fragment.getAttribute('src') if (src) { // Using `src` without origin below would fail in Firefox if the src is an absolute path - return await continuousLoadFragmentedPagesFromUrl(src, docs) + // do NOT return here because we need to preserve the first `url` for the final return value + await continuousLoadFragmentedPagesFromUrl(src, docs) } } return [new URL(url).pathname, docs]