X Tutup
Skip to content

Commit aa0eedb

Browse files
committed
finished Day 15
1 parent 50bbb14 commit aa0eedb

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

15 - LocalStorage/index-START.html

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ <h2>LOCAL TAPAS</h2>
2828
<script>
2929
const addItems = document.querySelector('.add-items');
3030
const itemsList = document.querySelector('.plates');
31-
const items = [];
31+
const items = JSON.parse(localStorage.getItem("items")) || [];
3232

3333
function addItem(e) {
3434
e.preventDefault();
@@ -42,21 +42,36 @@ <h2>LOCAL TAPAS</h2>
4242

4343
items.push(item);
4444
populateList(items, itemsList);
45+
localStorage.setItem("items", JSON.stringify(items));
4546
this.reset();
4647
}
4748

4849
function populateList(plates = [], platesList) {
4950
platesList.innerHTML = plates.map((plate, i) => {
5051
return `
5152
<li>
52-
<label for="">${plate.text}</label>
53+
<input type="checkbox" data-index=${i} id="item${i}" ${plate.done ? "checked" : ""} />
54+
<label for="item${i}">${plate.text}</label>
5355
</li>
5456
`
5557
}).join("");
5658
}
5759

58-
addItems.addEventListener("submit", addItem);
60+
function toggleDone(e) {
61+
if (!e.target.matches("input"))
62+
return;
5963

64+
const element = e.target;
65+
const index = element.dataset.index;
66+
items[index].done = !items[index].done;
67+
localStorage.setItem("items", JSON.stringify(items));
68+
populateList(items, itemsList);
69+
}
70+
71+
addItems.addEventListener("submit", addItem);
72+
itemsList.addEventListener("click", toggleDone);
73+
74+
populateList(items, itemsList);
6075
</script>
6176

6277

0 commit comments

Comments
 (0)
X Tutup