-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
110 lines (88 loc) · 3.25 KB
/
app.js
File metadata and controls
110 lines (88 loc) · 3.25 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
const prices = {
small: 2.5,
medium: 4.66,
large: 9
}
let data = {
firstName: '',
lastName: '',
email: '',
totalAmount: 0,
quantities: {
small: 0,
medium: 0,
large: 0
},
}
function add(itemType) {
data.quantities[itemType]++;
data.totalAmount += prices[itemType];
updateQuantity(itemType);
updateBalance();
}
function remove(itemType) {
if (data.quantities[itemType] === 0) {
alert('You do not have any packages');
return;
}
data.totalAmount -= prices[itemType];
data.quantities[itemType]--;
updateQuantity(itemType);
updateBalance();
}
function updateQuantity(itemType) {
const quantityInput = document.querySelector(`.quantityInput#${itemType}`)
quantityInput.innerText = data.quantities[itemType]
}
function updateCheckout(countElem, rowElem, quantity) {
const countSpan = document.getElementById(countElem)
const itemRow = document.getElementById(rowElem)
countSpan.innerHTML = quantity
itemRow.setAttribute('data-count', quantity)
}
function updateBalance() {
const totalSmall = data.quantities.small * prices.small;
updateCheckout('quantityInputNumberSmall', 'bottlePackSmallSummary', data.quantities.small)
const totalMedium = data.quantities.medium * prices.medium;
updateCheckout('quantityInputNumberMedium', 'bottlePackMediumSummary', data.quantities.medium)
const totalLarge = data.quantities.large * prices.large;
updateCheckout('quantityInputNumberLarge', 'bottlePackLargeSummary', data.quantities.large)
const totalAmount = document.getElementById('totalAmount');
totalAmount.innerText = `$${parseFloat(totalSmall + totalMedium + totalLarge).toFixed(2)}`
save();
}
function save() {
localStorage.setItem('data', JSON.stringify(data));
}
function load() {
const rawData = localStorage.getItem('data');
let formClass = document.querySelector('form');
function submitForm(event) {
let pack1 = document.querySelector('#small').innerText
let pack2 = document.querySelector('#medium').innerText
let pack3 = document.querySelector('#large').innerText
let firstName = document.getElementById('firstName').value;
document.getElementById('firstnameOverlay').innerHTML = firstName;
document.getElementById("overlay").style.display = "block";
let lastName = document.getElementById('lastName').value;
document.getElementById('lastnameOverlay').innerHTML = lastName + ',' + ' you ordered:';
document.getElementById("overlay").style.display = "block";
document.querySelector('#numberOfSmallBottleOverlay').innerHTML = pack1 + ' packs of 6 Bottles pack'
document.querySelector('#numberOfMediumBottleOverlay').innerHTML = pack2 + ' packs of 12 Bottles pack'
document.querySelector('#numberOfLargeBottleOverlay').innerHTML = pack3 + ' packs of 24 Bottles pack'
event.preventDefault();
}
formClass.addEventListener('submit', submitForm);
if (!rawData) {
return;
}
data = JSON.parse(rawData)
updateQuantity('small')
updateQuantity('medium')
updateQuantity('large')
updateBalance();
}
function off() {
document.getElementById("overlay").style.display = "none";
}
load();