blob: d73c1349eb57678970b70229ecd130b918f5081b (
plain) (
blame)
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
|
import select from 'select-dom';
import onetime from 'onetime';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
import features from '.';
import SearchQuery from '../github-helpers/search-query';
async function cleanBar(): Promise<void> {
(await elementReady<HTMLInputElement>('.header-search-input'))!.value = '';
}
function init(): void {
// Get issues links that don't already have a specific sorting applied
for (const link of select.all<HTMLAnchorElement>(`
[href*="/issues"]:not([href*="sort%3A"]):not(.issues-reset-query),
[href*="/pulls" ]:not([href*="sort%3A"]):not(.issues-reset-query)
`)) {
// Pick only links to lists, not single issues
// + skip pagination links
// + skip pr/issue filter dropdowns (some are lazyloaded)
if (/(issues|pulls)\/?$/.test(link.pathname) && !link.closest('.pagination, .table-list-filters')) {
new SearchQuery(link).add('sort:updated-desc');
}
}
// Extra nicety: Avoid GitHub's unnecessary redirect, this is their own bug
for (const link of select.all<HTMLAnchorElement>('[href*="/issues"][href*="is%3Apr"]')) {
link.pathname = link.pathname.replace(/issues\/?$/, 'pulls');
}
}
void features.add({
id: __filebasename,
description: 'Changes the default sort order of conversations to `Recently updated`.',
screenshot: false
}, {
init
}, {
include: [
pageDetect.isGlobalConversationList
],
waitForDomReady: false,
init: onetime(cleanBar)
});
|