-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathplayQueueButton.js
More file actions
49 lines (41 loc) · 1.34 KB
/
playQueueButton.js
File metadata and controls
49 lines (41 loc) · 1.34 KB
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
import eventManager from 'src/utils/eventManager.js';
import onPage from 'src/utils/onPage.js';
import * as hover from 'src/utils/hover.js';
onPage('Play', () => {
let queues;
let disable = true;
let restarting = false;
eventManager.on('jQuery', function onPlay() {
restarting = $('p.infoMessage[data-i18n-custom="header-info-restart"]').length !== 0;
if (disable || restarting) {
queues = $('#standard-mode, #ranked-mode, button.btn.btn-primary');
// TODO: translation
closeQueues(restarting ? 'Joining is disabled due to server restart.' : 'Waiting for connection to be established.');
}
});
eventManager.on('socketOpen', checkButton);
eventManager.on('closeQueues', closeQueues);
const timeout = setTimeout(() => {
checkButton();
// TODO: translation
applyMessage('Auto enabled buttons, connection was not detected.');
}, 10000);
function checkButton() {
disable = false;
clearTimeout(timeout);
if (queues && !restarting) {
queues.off('.script');
queues.toggleClass('closed', false);
hover.hide();
}
}
function closeQueues(message) {
queues.toggleClass('closed', true);
applyMessage(message);
}
function applyMessage(message) {
queues
.on('mouseenter.script', hover.show(message))
.on('mouseleave.script', () => hover.hide());
}
});