From fe00e759374915be577327e7fe91ff737ba9663c Mon Sep 17 00:00:00 2001 From: bargin <912465467@qq.com> Date: Thu, 12 Mar 2026 08:18:41 +0800 Subject: [PATCH] fix: restore repo PR tooltip on GitHub --- .../features/repo-pr-tooltip/index.tsx | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/pages/ContentScripts/features/repo-pr-tooltip/index.tsx b/src/pages/ContentScripts/features/repo-pr-tooltip/index.tsx index a64f4977..98388d6f 100644 --- a/src/pages/ContentScripts/features/repo-pr-tooltip/index.tsx +++ b/src/pages/ContentScripts/features/repo-pr-tooltip/index.tsx @@ -29,12 +29,8 @@ let PRDetail: PRDetail = { }; let meta: RepoMeta; let platform: string; -const pullRequestTabSelectors = [ - 'a[data-tab-item="pull-requests"]', - '#pull-requests-tab', - 'a[href$="/pulls"][data-selected-links*="repo_pulls"]', - 'a[href$="/pulls"]', -]; +const pullRequestTabSelector = 'a[data-tab-item="pull-requests"]'; +const pullRequestFallbackSelectors = ['#pull-requests-tab', 'a[href$="/pulls"][data-selected-links*="repo_pulls"]']; const getData = async () => { PRDetail.PROpened = await getPROpened(platform, repoName); @@ -45,7 +41,13 @@ const getData = async () => { meta = (await metaStore.get(platform, repoName)) as RepoMeta; }; const getPullRequestTab = () => { - const $tabs = $(pullRequestTabSelectors.join(',')).filter((_, element) => !element.closest('template')); + const $primaryTabs = $(pullRequestTabSelector).filter((_, element) => !element.closest('template')); + const $visiblePrimaryTabs = $primaryTabs.filter(':visible'); + if ($visiblePrimaryTabs.length > 0 || $primaryTabs.length > 0) { + return ($visiblePrimaryTabs.length > 0 ? $visiblePrimaryTabs : $primaryTabs).first(); + } + + const $tabs = $(pullRequestFallbackSelectors.join(',')).filter((_, element) => !element.closest('template')); const $visibleTabs = $tabs.filter(':visible'); return ($visibleTabs.length > 0 ? $visibleTabs : $tabs).first(); @@ -55,8 +57,11 @@ const init = async (): Promise => { platform = getPlatform(); repoName = getRepoName(); await getData(); - await elementReady(pullRequestTabSelectors.join(',')); + await elementReady([pullRequestTabSelector, ...pullRequestFallbackSelectors].join(',')); const $prTab = getPullRequestTab(); + if ($prTab.length === 0) { + return; + } const placeholderElement = $('
').appendTo('body')[0]; createRoot(placeholderElement).render(