-
Notifications
You must be signed in to change notification settings - Fork 0
/
functions.js
52 lines (48 loc) · 1.77 KB
/
functions.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
//recreating the three js popup windows (alert, prompt, confirm) for later use in the terminal (exercices.js)
//alert
function customAlert(text = "") {
terminalOutput.innerHTML += `<p>${text}</p>`;
}
//since window.alert is a function, we can override it
window.alert = customAlert;
//prompt
function prompt(text = "") {
return new Promise((resolve) => {
terminalOutput.innerHTML += `<span id="promptLine"><span>${text} :</span> <input type="text" id="prompt" /></span>`;
const promptInput = document.getElementById("prompt");
promptInput.focus();
let command = "";
promptInput.addEventListener("keydown", function (event) {
if (event.key === "Enter") {
command = promptInput.value.trim();
writeToTerminal(`<span>${text} :</span> ${command}`);
promptInput.value = "";
const promptLine = document.getElementById("promptLine");
promptLine.remove();
inputField.focus();
resolve(command);
}
});
});
}
//confirm
async function customConfirm(text = "") {
return new Promise((resolve) => {
terminalOutput.innerHTML += `<span id="confirmLine"><span>${text} [Y/n]</span> <input type="text" id="confirm" /></span>`;
const confirmInput = document.getElementById("confirm");
confirmInput.focus();
let command = "";
confirmInput.addEventListener("keydown", function (event) {
if (event.key === "Enter") {
command = confirmInput.value.trim().toLowerCase();
const accepted = command === "y" || command === "";
writeToTerminal(`<span>${text} :</span> ${command}`);
confirmInput.value = "";
const confirmLine = document.getElementById("confirmLine");
confirmLine.remove();
inputField.focus();
resolve(accepted);
}
});
});
}