-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcart.js
116 lines (98 loc) · 2.76 KB
/
cart.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
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
111
112
113
const products = [
{
id: 1,
name: "Teclado Mecânico",
category: "Periféricos",
price: 650.00,
image: "./images/teclado-mecanico.jpg",
quantity: 2
},
{
id: 2,
name: "Cadeira Gamer",
category: "Acessórios",
price: 500.00,
image: "./images/cadeira-gamer.jpg",
quantity: 2
},
{
id: 3,
name: "Headset Bluetooth",
category: "Periféricos",
price: 350.00,
image: "./images/headset.jpg",
quantity: 2
}
]
function renderCartItems() {
const cartItemsSection = document.getElementById('cart-items');
const subtotalElement = document.getElementById('subtotal');
const total = document.getElementById('total');
let subtotal = 0;
cartItemsSection.innerHTML = '';
products.forEach(product => {
const itemTotal = product.price * product.quantity;
subtotal += itemTotal;
const row = document.createElement('tr');
row.innerHTML = `
<td>
<div class="product">
<img
src="${product.image}"
height="100"
width="100"
alt="${product.name}"
/>
<div class="info">
<div class="name">${product.name}</div>
<div class="category">${product.category}</div>
</div>
</div>
</td>
<td>R$ ${product.price.toFixed(2)}</td>
<td>
<div class="quantity">
<button onclick="decreaseQuantity(${product.id})">
<i class="bx bx-minus"></i>
</button>
<span>${product.quantity}</span>
<button onclick="increaseQuantity(${product.id})">
<i class="bx bx-plus"></i>
</button>
</div>
</td>
<td>R$ ${itemTotal.toFixed(2)}</td>
<td>
<button class="remove" onclick="removeProduct(${product.id})">
<i class="bx bx-x"></i>
</button>
</td>
`;
cartItemsSection.appendChild(row);
});
subtotalElement.textContent = `R$ ${subtotal.toFixed(2)}`;
total.textContent = `R$ ${subtotal.toFixed(2)}`;
}
function increaseQuantity(productId) {
const product = products.find(x => x.id == productId);
if(product) {
product.quantity++;
renderCartItems();
}
}
function decreaseQuantity(productId) {
const product = products.find(x => x.id == productId);
if(product && product.quantity > 1) {
product.quantity--;
renderCartItems();
}
}
function removeProduct(productId) {
const index = products.findIndex(x => x.id == productId);
if(index !== -1) {
products.splice(index, 1);
renderCartItems();
}
}
// para quando dar o load na página.
document.addEventListener('DOMContentLoaded', renderCartItems);