From cac5ad0f1076701ee0225f71ea91302f4bf2fe45 Mon Sep 17 00:00:00 2001 From: Harry Date: Sat, 27 Jul 2024 17:57:48 -0400 Subject: [PATCH] Revert "fix: repo homepage latest commit hovercard openrank display" This reverts commit c04020557bd6b9ede9a97bdc142ba878ef0c8dd9. --- .../developer-hovercard-info/index.tsx | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/pages/ContentScripts/features/developer-hovercard-info/index.tsx b/src/pages/ContentScripts/features/developer-hovercard-info/index.tsx index acd5ddc2..b6f5c6cf 100644 --- a/src/pages/ContentScripts/features/developer-hovercard-info/index.tsx +++ b/src/pages/ContentScripts/features/developer-hovercard-info/index.tsx @@ -31,31 +31,11 @@ const renderTo = (container: HTMLElement, developerName: string, openrank: strin ReactDOM.render(, openRankContainer); }; -const elementReadyWithTimeout = async (selector: string, options: { stopOnDomReady: boolean }, timeout: number) => { - return Promise.race([ - elementReady(selector, options), - new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout waiting for ${selector}`)), timeout)), - ]); -}; - const init = async (): Promise => { let abortController = new AbortController(); - const hovercardSelector = '[data-hovercard-url]'; - - await elementReady(hovercardSelector, { stopOnDomReady: false }); - // The loading time for the element with data-testid=github-avatar is 1500ms. - // If the timeout is not set, OpenRank will not be added normally. - try { - await elementReadyWithTimeout('[data-testid=github-avatar]', { stopOnDomReady: false }, 1500); - } catch (error) { - console.error(error); - } - + const hovercardSelector = '[data-hovercard-type="user"]'; document.querySelectorAll(hovercardSelector).forEach((element) => { - const hovercardUrl = element.getAttribute('data-hovercard-url'); - if (!hovercardUrl || !hovercardUrl.startsWith('/users')) { - return; - } + // isProcessing is used to Prevent OpenRank from adding duplicates element.addEventListener('mouseover', async () => { abortController.abort(); abortController = new AbortController();