1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
import select from 'select-dom';
import onetime from 'onetime';
import {observe} from 'selector-observer';
import * as pageDetect from 'github-url-detection';
import features from '.';
function initIssue(): void {
observe('.gh-header-meta .flex-auto', {
add({childNodes: bylineNodes}) {
// Removes: octocat opened this issue on 1 Jan [·] 1 comments
bylineNodes[4].textContent = bylineNodes[4].textContent!.replace('·', '');
// Removes: [octocat opened this issue on 1 Jan] · 1 comments
for (const node of [...bylineNodes].slice(0, 4)) {
node.remove();
}
}
});
}
function initPR(): void {
observe('.gh-header-meta .flex-auto', {
add(byline) {
const isMerged = select.exists('#partial-discussion-header [title="Status: Merged"]');
const isSameAuthor = select('.js-discussion > .TimelineItem:first-child .author')?.textContent === select('.author', byline)!.textContent;
const baseBranch = select('.commit-ref:not(.head-ref)', byline)!;
const isDefaultBranch = (baseBranch.firstElementChild as HTMLAnchorElement).pathname.split('/').length === 3;
// Removes: [octocat wants to merge 1 commit into] github:master from octocat:feature
// Removes: [octocat merged 1 commit into] master from feature
// Removes: octocat [merged 1 commit into] github:master from lovelycat:feature
for (const node of [...byline.childNodes].slice(isSameAuthor ? 0 : 2, isMerged ? 3 : 5)) {
node.remove();
}
if (!isSameAuthor) {
byline.prepend('by ');
}
if (isDefaultBranch) {
// Removes: octocat wants to merge 1 commit into [github:dev] from octocat:feature
baseBranch.hidden = true;
} else {
// Add back "into" if the PR base branch is not the default branch
baseBranch.before(' into ');
}
}
});
}
void features.add({
id: __filebasename,
description: 'Remove duplicate information in conversation headers.',
screenshot: 'https://user-images.githubusercontent.com/44045911/89736767-686ec800-da9e-11ea-81c3-252e9813140b.png'
}, {
include: [
pageDetect.isIssue
],
waitForDomReady: false,
init: onetime(initIssue)
}, {
include: [
pageDetect.isPR
],
waitForDomReady: false,
init: onetime(initPR)
});
|