From 686f27dbd4697e6c6056716c771565b1979dc226 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:31:11 +0100 Subject: [PATCH 01/22] added the closing parenthesis in the for loop --- .vscode/settings.json | 3 +++ debugging/book-library/script.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..6b665aaa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 75ce6c1d..7f21dc1d 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -54,7 +54,7 @@ function render() { let table = document.getElementById("display"); let rowsNumber = table.rows.length; //delete old table - for (let n = rowsNumber - 1; n > 0; n-- { + for (let n = rowsNumber - 1; n > 0; n-- ){ table.deleteRow(n); } //insert updated row and cells From 11d4e80899713c6fa058fe7d4665ab32be82c300 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:35:28 +0100 Subject: [PATCH 02/22] used the correct variable name myLibrary inside the submit function --- debugging/book-library/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 7f21dc1d..3108e77f 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -38,7 +38,8 @@ function submit() { return false; } else { let book = new Book(title.value, title.value, pages.value, check.checked); - library.push(book); + myLibrary.push(book); + render(); } } From 9acc8841419a9763eff39049bc7914715cfe5b01 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:37:47 +0100 Subject: [PATCH 03/22] added the autho.value by deleting one of the title.value that was passed twice --- debugging/book-library/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 3108e77f..8e45c87e 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -37,7 +37,7 @@ function submit() { alert("Please fill all fields!"); return false; } else { - let book = new Book(title.value, title.value, pages.value, check.checked); + let book = new Book(title.value, author.value, pages.value, check.checked); myLibrary.push(book); render(); From 127e4f435f1a85e8d24c5df3aaeb292d2fe6cf0d Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:41:40 +0100 Subject: [PATCH 04/22] changed every instance of delBut with delButton --- debugging/book-library/script.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 8e45c87e..6e6f1e81 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -91,11 +91,11 @@ function render() { //add delete button to every row and render again let delButton = document.createElement("button"); - delBut.id = i + 5; + delButton = i + 5; deleteCell.appendChild(delBut); - delBut.className = "btn btn-warning"; - delBut.innerHTML = "Delete"; - delBut.addEventListener("clicks", function () { + delButton.className = "btn btn-warning"; + delButton.innerHTML = "Delete"; + delButton.addEventListener("clicks", function () { alert(`You've deleted title: ${myLibrary[i].title}`); myLibrary.splice(i, 1); render(); From 8314db5b49b7a9d89e167511e9371edf16a624bb Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:43:17 +0100 Subject: [PATCH 05/22] correct the event name by it correct name click --- debugging/book-library/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 6e6f1e81..46e1fabb 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -95,7 +95,7 @@ function render() { deleteCell.appendChild(delBut); delButton.className = "btn btn-warning"; delButton.innerHTML = "Delete"; - delButton.addEventListener("clicks", function () { + delButton.addEventListener("click", function () { alert(`You've deleted title: ${myLibrary[i].title}`); myLibrary.splice(i, 1); render(); From 8c9db43870853b9ef394dbae4675e4a3c7a815d6 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:45:07 +0100 Subject: [PATCH 06/22] changed the wrong logically check from false to yes --- debugging/book-library/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 46e1fabb..2b1fb4a5 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -77,7 +77,7 @@ function render() { changeBut.className = "btn btn-success"; wasReadCell.appendChild(changeBut); let readStatus = ""; - if (myLibrary[i].check == false) { + if (myLibrary[i].check == true) { readStatus = "Yes"; } else { readStatus = "No"; From f839c7baeb75798b14fb65dd65ed4ff2d6ccf282 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:50:05 +0100 Subject: [PATCH 07/22] added additional validation for book's author --- debugging/book-library/script.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 2b1fb4a5..7671d9ff 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -31,6 +31,8 @@ function submit() { if ( title.value == null || title.value == "" || + author.value == null || + author.value == "" || pages.value == null || pages.value == "" ) { @@ -38,7 +40,7 @@ function submit() { return false; } else { let book = new Book(title.value, author.value, pages.value, check.checked); - myLibrary.push(book); + myLibrary.push(book); render(); } From ab117d66a05cdf2b852472420b84597ee7a5bf8e Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:53:25 +0100 Subject: [PATCH 08/22] remove the table element from the index.html --- debugging/book-library/index.html | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index 23acfa71..8b2308fe 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -80,15 +80,7 @@

Library

- - - - - - - - - + From 55bfed47d842d65e87d3d849ca3a4699dd2a2c23 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:59:04 +0100 Subject: [PATCH 09/22] add the button ID --- debugging/book-library/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 7671d9ff..2529c6b2 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -93,7 +93,7 @@ function render() { //add delete button to every row and render again let delButton = document.createElement("button"); - delButton = i + 5; + delButton.id = i + 5; deleteCell.appendChild(delBut); delButton.className = "btn btn-warning"; delButton.innerHTML = "Delete"; From ab20798e95d88b184211b5f78e68311404b91997 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 22:59:59 +0100 Subject: [PATCH 10/22] appen the corrent variable name delButton --- debugging/book-library/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 2529c6b2..c1d9ad63 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -94,7 +94,7 @@ function render() { //add delete button to every row and render again let delButton = document.createElement("button"); delButton.id = i + 5; - deleteCell.appendChild(delBut); + deleteCell.appendChild(delButton); delButton.className = "btn btn-warning"; delButton.innerHTML = "Delete"; delButton.addEventListener("click", function () { From 2606f98d6fe1f6fa015733458815ab6c4ff8e550 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 5 Aug 2026 23:02:40 +0100 Subject: [PATCH 11/22] let the row start to add from top --- .vscode/settings.json | 3 --- debugging/book-library/script.js | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 6b665aaa..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "liveServer.settings.port": 5501 -} diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index c1d9ad63..d706727d 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -63,7 +63,7 @@ function render() { //insert updated row and cells let length = myLibrary.length; for (let i = 0; i < length; i++) { - let row = table.insertRow(1); + let row = table.insertRow(-1); let titleCell = row.insertCell(0); let authorCell = row.insertCell(1); let pagesCell = row.insertCell(2); From 41cc5fb73c0c27c6fd7dc85a83065e578d15c57c Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:18:44 +0100 Subject: [PATCH 12/22] Removed all the syntax error in the index.html file --- .vscode/settings.json | 3 +++ debugging/book-library/index.html | 23 ++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..6b665aaa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index 8b2308fe..28e2a1de 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -1,10 +1,10 @@ - + - + Book Library + @@ -28,10 +28,10 @@

Library

-
+
Library /> Library type="submit" value="Submit" class="btn btn-primary" - onclick="submit();" + onclick="handlesubmit();" /> +
-
@@ -80,9 +80,10 @@

Library

+
- + - + \ No newline at end of file From 25eb25edb3c1dbc852d08a3fc4148721ecf647b4 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:40:05 +0100 Subject: [PATCH 13/22] change the variable declation of myLibrary with const as it will never change --- debugging/book-library/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index d706727d..ea23430a 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,4 +1,5 @@ -let myLibrary = []; +// Data store this variable never changes +const myLibrary = []; window.addEventListener("load", function (e) { populateStorage(); From 093b70c76abb6bcc3ce29332bb9a644b23f99e61 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:44:05 +0100 Subject: [PATCH 14/22] give meaningful varaible name in the DOM nodes --- debugging/book-library/script.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index ea23430a..2aea7936 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -21,10 +21,11 @@ function populateStorage() { } } -const title = document.getElementById("title"); -const author = document.getElementById("author"); -const pages = document.getElementById("pages"); -const check = document.getElementById("check"); +const titleInput = document.getElementById("title"); +const authorInput = document.getElementById("author"); +const pagesInput = document.getElementById("pages"); +const readCheck = document.getElementById("check"); +const tableBody = document.querySelector("#display tbody"); //check the right input from forms and if its ok -> add the new book (object in array) //via Book function and start render function From ecd8a2f82f8ca6900b8cf147a47977e20c935592 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:45:43 +0100 Subject: [PATCH 15/22] removes the seond render call when window laods --- debugging/book-library/script.js | 1 - 1 file changed, 1 deletion(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 2aea7936..d55604e9 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -3,7 +3,6 @@ const myLibrary = []; window.addEventListener("load", function (e) { populateStorage(); - render(); }); function populateStorage() { From e18af51592e83ffa9c5b468c2125d3fb29ab0d6b Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:51:09 +0100 Subject: [PATCH 16/22] create a book model class --- debugging/book-library/script.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index d55604e9..237aa457 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,6 +1,25 @@ // Data store this variable never changes const myLibrary = []; +// DOM nodes +const titleInput = document.getElementById("title"); +const authorInput = document.getElementById("author"); +const pagesInput = document.getElementById("pages"); +const readCheck = document.getElementById("check"); +const tableBody = document.querySelector("#display tbody"); + + + +// Book model +class Book { + constructor(title, author, pages, read) { + this.title = title; + this.author = author; + this.pages = pages; + this.read = read; + } +} + window.addEventListener("load", function (e) { populateStorage(); }); @@ -20,11 +39,6 @@ function populateStorage() { } } -const titleInput = document.getElementById("title"); -const authorInput = document.getElementById("author"); -const pagesInput = document.getElementById("pages"); -const readCheck = document.getElementById("check"); -const tableBody = document.querySelector("#display tbody"); //check the right input from forms and if its ok -> add the new book (object in array) //via Book function and start render function From 402f3c037fe0db9431ec9ec3aacc67ae381af314 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:54:36 +0100 Subject: [PATCH 17/22] add the default book load onec --- debugging/book-library/script.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 237aa457..75761cb8 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -19,22 +19,15 @@ class Book { this.read = read; } } - +// initial load window.addEventListener("load", function (e) { populateStorage(); }); - +// Add default books only once function populateStorage() { - if (myLibrary.length == 0) { - let book1 = new Book("Robison Crusoe", "Daniel Defoe", "252", true); - let book2 = new Book( - "The Old Man and the Sea", - "Ernest Hemingway", - "127", - true - ); - myLibrary.push(book1); - myLibrary.push(book2); + if (myLibrary.length === 0) { + myLibrary.push(new Book("Robinson Crusoe", "Daniel Defoe", 252, true)); + myLibrary.push(new Book("The Old Man and the Sea", "Ernest Hemingway", 127, true)); render(); } } From 57d4d12071f1e6dad291b5a7882181b60d95aecd Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 13:57:21 +0100 Subject: [PATCH 18/22] handle form submission --- debugging/book-library/script.js | 39 ++++++++++++-------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 75761cb8..9d975654 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -32,35 +32,24 @@ function populateStorage() { } } +// Handle form submission +function handleSubmit() { + const title = titleInput.value.trim(); + const author = authorInput.value.trim(); + const pages = Number(pagesInput.value); -//check the right input from forms and if its ok -> add the new book (object in array) -//via Book function and start render function -function submit() { - if ( - title.value == null || - title.value == "" || - author.value == null || - author.value == "" || - pages.value == null || - pages.value == "" - ) { - alert("Please fill all fields!"); - return false; - } else { - let book = new Book(title.value, author.value, pages.value, check.checked); - myLibrary.push(book); - - render(); + if (!title || !author || !pages || pages <= 0) { + showMessage("Please enter valid book details."); + return; } -} -function Book(title, author, pages, check) { - this.title = title; - this.author = author; - this.pages = pages; - this.check = check; -} + const book = new Book(title, author, pages, readCheckbox.checked); + myLibrary.push(book); + render(); + showMessage(`Added "${title}" to your library.`); +} + function render() { let table = document.getElementById("display"); let rowsNumber = table.rows.length; From 9902cfc8d5579a409cf4d5fe39a03a297d7f43ed Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 14:03:52 +0100 Subject: [PATCH 19/22] implement render Table , toggleread button and delete button --- debugging/book-library/script.js | 71 +++++++++++++------------------- 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 9d975654..8b0cad8d 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -50,54 +50,39 @@ function handleSubmit() { showMessage(`Added "${title}" to your library.`); } +// Render table function render() { - let table = document.getElementById("display"); - let rowsNumber = table.rows.length; - //delete old table - for (let n = rowsNumber - 1; n > 0; n-- ){ - table.deleteRow(n); - } - //insert updated row and cells - let length = myLibrary.length; - for (let i = 0; i < length; i++) { - let row = table.insertRow(-1); - let titleCell = row.insertCell(0); - let authorCell = row.insertCell(1); - let pagesCell = row.insertCell(2); - let wasReadCell = row.insertCell(3); - let deleteCell = row.insertCell(4); - titleCell.innerHTML = myLibrary[i].title; - authorCell.innerHTML = myLibrary[i].author; - pagesCell.innerHTML = myLibrary[i].pages; + tableBody.innerHTML = ""; + + myLibrary.forEach((book, index) => { + const row = tableBody.insertRow(); - //add and wait for action for read/unread button - let changeBut = document.createElement("button"); - changeBut.id = i; - changeBut.className = "btn btn-success"; - wasReadCell.appendChild(changeBut); - let readStatus = ""; - if (myLibrary[i].check == true) { - readStatus = "Yes"; - } else { - readStatus = "No"; - } - changeBut.innerText = readStatus; + row.insertCell().textContent = book.title; + row.insertCell().textContent = book.author; + row.insertCell().textContent = book.pages; - changeBut.addEventListener("click", function () { - myLibrary[i].check = !myLibrary[i].check; + // Toggle read button + const readCell = row.insertCell(); + const toggleReadBtn = document.createElement("button"); + toggleReadBtn.className = "btn btn-success btn-sm"; + toggleReadBtn.textContent = book.read ? "Yes" : "No"; + toggleReadBtn.addEventListener("click", () => { + book.read = !book.read; render(); }); - - //add delete button to every row and render again - let delButton = document.createElement("button"); - delButton.id = i + 5; - deleteCell.appendChild(delButton); - delButton.className = "btn btn-warning"; - delButton.innerHTML = "Delete"; - delButton.addEventListener("click", function () { - alert(`You've deleted title: ${myLibrary[i].title}`); - myLibrary.splice(i, 1); + readCell.appendChild(toggleReadBtn); + // Delete button + const deleteCell = row.insertCell(); + const deleteBtn = document.createElement("button"); + deleteBtn.className = "btn btn-warning btn-sm"; + deleteBtn.textContent = "Delete"; + deleteBtn.addEventListener("click", () => { + myLibrary.splice(index, 1); render(); + showMessage(`Deleted "${book.title}".`); }); - } + deleteCell.appendChild(deleteBtn); + }); } + + From 71dadca17393fd6ef090b298d82279fa47356228 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 14:37:17 +0100 Subject: [PATCH 20/22] Added the non Blocking mesage and fixed the bug in handleSubmit name in index.html file --- debugging/book-library/index.html | 5 +++-- debugging/book-library/script.js | 13 +++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index 28e2a1de..0c9ca2f1 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -26,6 +26,7 @@

Library

+
@@ -62,10 +63,10 @@

Library

/>Read
diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 8b0cad8d..6309d6fc 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -43,7 +43,7 @@ function handleSubmit() { return; } - const book = new Book(title, author, pages, readCheckbox.checked); + const book = new Book(title, author, pages, readCheck.checked); myLibrary.push(book); render(); @@ -85,4 +85,13 @@ function render() { }); } - +// Non-blocking message +function showMessage(msg) { + const box = document.getElementById("messageBox"); + box.innerHTML = ` + + `; +} From bbef966508f001f68a19aa842b51d64f08fa0c8e Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 14:55:10 +0100 Subject: [PATCH 21/22] Attached handleSubmit function to window and deleted vscode and settings.json file --- .vscode/extensions.json | 10 ---------- .vscode/settings.json | 3 --- debugging/book-library/script.js | 2 +- 3 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/settings.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 25549074..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "streetsidesoftware.code-spell-checker", - "eamodio.gitlens", - "ritwickdey.LiveServer", - "vsliveshare.vsliveshare" - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 6b665aaa..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "liveServer.settings.port": 5501 -} diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 6309d6fc..49ad1251 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -33,7 +33,7 @@ function populateStorage() { } // Handle form submission -function handleSubmit() { + window.handleSubmit = function handleSubmit() { const title = titleInput.value.trim(); const author = authorInput.value.trim(); const pages = Number(pagesInput.value); From cde0d51a35f19609ee56ba75053f0f48d95d5ec4 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 10 Aug 2026 15:14:30 +0100 Subject: [PATCH 22/22] Restore .vscode file to avoid validator failure --- .vscode/extensions.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..25549074 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "streetsidesoftware.code-spell-checker", + "eamodio.gitlens", + "ritwickdey.LiveServer", + "vsliveshare.vsliveshare" + ] +}