-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpopup.js
82 lines (64 loc) · 2.06 KB
/
popup.js
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
function onload() {
setCurrentFrequencyValueInForm()
}
onload()
function setCurrentFrequencyValueInForm() {
chrome.runtime.sendMessage({ action: 'getFrequency'}).then(response => {
// do something with response here, not outside the function
if(response.frequency != null) {
document.getElementById('frequencyInput').value = convertFrequencyMsIntoSeconds(response.frequency)
}
})
}
function showConfigurationSuccessMessage() {
const configurationSuccessMessage = document.querySelector("#configuration-success-message")
configurationSuccessMessage.classList.remove("d-none");
setTimeout(function() {
configurationSuccessMessage.classList.add("d-none")
}, 3000)
}
function sendUserConfiguration() {
const frequency = convertFrequencySecondsIntoMs(document.getElementById("frequencyInput").value)
chrome.runtime.sendMessage({ action: 'updateConfiguration', frequency: frequency }).then(response => {
if(response === 'updated configuration') {
showConfigurationSuccessMessage()
}
})
}
function convertFrequencyMsIntoSeconds(milliseconds) {
return parseFloat(milliseconds) / 1000
}
function convertFrequencySecondsIntoMs(seconds) {
return parseFloat(seconds) * 1000
}
function parseAndValidateFrequency(frequency) {
let parseResult = parseFloat(frequency)
if (isNaN(parseResult)) {
setErrorMessage("The frequency is not a valid number. Valid inputs look like (1, 10, 101, .1, .5, .999)")
return false
}
else if (parseResult <= 0) {
setErrorMessage("The frequency must be > 0")
return false
}
return true
}
function isValid() {
const frequency = document.getElementById("frequencyInput").value
let isValid = false;
isValid = parseAndValidateFrequency(frequency)
if (isValid) {
setErrorMessage(null)
}
return isValid
}
function setErrorMessage(errorMessageHTML) {
let errorBox = document.getElementById("error")
errorBox.innerHTML = errorMessageHTML
}
const saveButton = document.getElementById('save')
saveButton.onclick = function () {
if (isValid()) {
sendUserConfiguration()
}
}