Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 26 additions & 12 deletions source/features/bugs-tab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ async function init(): Promise<void | false> {
return false;
}

const issuesTab = (await elementReady('.reponav [data-hotkey="g i"]'))?.parentElement;
const issuesTab = (await elementReady('.pagehead [data-hotkey="g i"]'))?.parentElement;
if (!issuesTab) {
// Repo is archived
return false;
Expand All @@ -54,26 +54,40 @@ async function init(): Promise<void | false> {
// Copy Issues tab
const bugsTab = issuesTab.cloneNode(true);

// Disable unwanted behavior #3001
const bugsLink = select('a', bugsTab)!;
bugsLink.removeAttribute('data-hotkey');
bugsLink.removeAttribute('data-selected-links');
select('a', issuesTab)!.removeAttribute('data-selected-links');

// Update its appearance
select('.octicon', bugsTab)!.replaceWith(<BugIcon/>);
select('[itemprop="name"]', bugsTab)!.textContent = 'Bugs';
const bugsTabTitle = select('[data-content]', bugsTab);
if (bugsTabTitle) {
bugsTabTitle.dataset.content = 'Bugs';
bugsTabTitle.textContent = 'Bugs';
select('.octicon', bugsTab)!.replaceWith(<BugIcon className="UnderlineNav-octicon"/>);

// Un-select one of the tabs if necessary
const selectedTabLink = !isBugsPage || pageDetect.isPRList() ? bugsLink : select('.selected', issuesTab);
selectedTabLink?.classList.remove('selected');
selectedTabLink?.removeAttribute('aria-current');
} else {
// Pre "Repository refresh" layout
select('[itemprop="name"]', bugsTab)!.textContent = 'Bugs';
select('.octicon', bugsTab)!.replaceWith(<BugIcon/>);

// Change the Selected tab if necessary
bugsLink.classList.toggle('selected', isBugsPage && !pageDetect.isPRList());
select('.selected', issuesTab)?.classList.toggle('selected', !isBugsPage);
}

// Set temporary counter
const bugsCounter = select('.Counter', bugsTab)!;
bugsCounter.textContent = '0';

// Disable unwanted behavior #3001
const bugsLink = select('a', bugsTab)!;
bugsLink.removeAttribute('data-hotkey');
bugsLink.removeAttribute('data-selected-links');

// Update Bugs’ link
new SearchQuery(bugsLink).add('label:bug');

// Change the Selected tab if necessary
bugsLink.classList.toggle('selected', isBugsPage && !pageDetect.isPRList());
select('.selected', issuesTab)?.classList.toggle('selected', !isBugsPage);

issuesTab.after(bugsTab);

// Update bugs count
Expand Down