Skip to content

Commit 5c03079

Browse files
committedMay 1, 2023
fix: resolve DOM elements of repo meta
1 parent 01cca1f commit 5c03079

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed
 

‎src/platforms/GitHub/DOMHelper.ts

+32-8
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,34 @@ import { formatClass, parseIntFromElement } from 'utils/DOMHelper'
66
import { renderReact, run } from 'utils/general'
77
import { CopyFileButton, copyFileButtonClassName } from './CopyFileButton'
88

9+
const selectors = {
10+
globalNavigation: {
11+
navbar: {
12+
repositoryOwner: [
13+
'.AppHeader-context-item[data-hovercard-type="user"]',
14+
'.AppHeader-context-item[data-hovercard-type="organization"]',
15+
].join(),
16+
// its meant to be the element visually next to the `repositoryOwner` element
17+
repositoryName:
18+
'nav[role="navigation"] ul[role="list"] li:nth-child(2) .AppHeader-context-item',
19+
},
20+
},
21+
}
22+
923
export function resolveMeta(): Partial<MetaData> {
1024
const metaData = {
11-
userName: $('[itemprop="author"] > a[rel="author"]', e => e.textContent?.trim()) || undefined,
12-
repoName: $('[itemprop="name"] > a[href]', e => e.textContent?.trim()) || undefined,
25+
userName:
26+
$(
27+
'[itemprop="author"] > a[rel="author"]',
28+
e => e.textContent?.trim(),
29+
() => $(selectors.globalNavigation.navbar.repositoryOwner, e => e.textContent?.trim()),
30+
) || undefined,
31+
repoName:
32+
$(
33+
'[itemprop="name"] > a[href]',
34+
e => e.textContent?.trim(),
35+
() => $(selectors.globalNavigation.navbar.repositoryName, e => e.textContent?.trim()),
36+
) || undefined,
1337
branchName: getCurrentBranch(true),
1438
}
1539
if (!metaData.userName || !metaData.repoName) {
@@ -19,15 +43,15 @@ export function resolveMeta(): Partial<MetaData> {
1943
}
2044

2145
export function isInRepoPage() {
22-
const repoHeadSelector = '.repohead' // legacy
46+
const repoHeadSelector = '.repohead'
2347
const authorNameSelector = '.author[itemprop="author"]'
24-
const globalNavigationSelectors = [
25-
'.AppHeader-context-item[data-hovercard-type="user"]',
26-
'.AppHeader-context-item[data-hovercard-type="organization"]',
27-
].join()
2848
return Boolean(
2949
document.querySelector(
30-
[repoHeadSelector, authorNameSelector, globalNavigationSelectors].join(),
50+
[
51+
repoHeadSelector,
52+
authorNameSelector,
53+
selectors.globalNavigation.navbar.repositoryOwner,
54+
].join(),
3155
),
3256
)
3357
}

0 commit comments

Comments
 (0)