-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
70 lines (56 loc) · 1.75 KB
/
index.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
import { Calculation } from './class/calculation.js';
import { Display } from './class/display.js';
const calculation = new Calculation();
const display = new Display();
export const inputs = {};
export const pageElements = {};
window.document.addEventListener('DOMContentLoaded', function () {
reset();
function reset() {
display.reset();
calculation.reset();
update(true);
}
display.tipButtons.forEach((button) => {
button.addEventListener('click', (e) => {
calculation.tip = parseFloat(e.target.value);
display.updateTips(e.target.id);
update(false);
});
});
// GESTION DES ENTREES DANS LES INPUTS:
display.billAmount.addEventListener('input', (e) => {
calculation.billAmount = e.target.value;
update(false);
});
display.customTip.addEventListener('input', (e) => {
calculation.tip = e.target.value;
update(false);
});
display.peopleQty.addEventListener('input', (e) => {
calculation.peopleQty = e.target.value;
update(false);
});
display.customTip.addEventListener('click', function () {
display.updateTips();
});
display.resetButton.addEventListener('click', () => {
reset();
});
// DECLARATION DE FONCTIONS UTILITAIRES:
function update(isReset) {
!isReset && calculation.calculate();
// ? (resetButton.disabled = true) : (resetButton.disabled = false);
display.resetButton.disabled = isReset;
// console.log('calculation.error', calculation.error);
// console.log('isReset', isReset);
if (calculation.error && !isReset) {
// console.log('ici');
display.generateError();
} else {
// console.log('là');
display.deleteError();
}
display.updateResult(calculation.tipPerPers, calculation.totalPerPers);
}
});