From 4bd55ba8d126cdee52aadcd810ddfd09ac8a2201 Mon Sep 17 00:00:00 2001 From: c0d1ng_ma5ter Date: Tue, 29 Apr 2025 18:33:20 -0600 Subject: [PATCH] fix(curriculum): Allow more freedom of implementation in Todo App (#59624) Co-authored-by: Jessica Wilkins <67210629+jdwilkin4@users.noreply.github.com> --- .../meta.json | 70 ++-- .../_meta/workshop-todo-app/meta.json | 72 ++-- .../64faca774fd9fd74bc084cc9.md | 47 ++- .../64facf6180824876f70a2e86.md | 363 ------------------ .../64fad07f43a101779cb8692a.md | 4 +- .../64fad9cd2eeb1e7ca2ca8c8b.md | 4 +- .../64fadae4f2d51b7d5d8b98d8.md | 4 +- .../64fadff23375f27ff06c6d40.md | 4 +- .../64fae068bcdc9c805bd8399e.md | 4 +- .../64faedcd16a1e985c4c2dc94.md | 4 +- .../64faf0418e828c0114a558a7.md | 4 +- .../64faf65b22ad8d07df9be14d.md | 4 +- .../64faf874364ec308f875f636.md | 4 +- .../64fafac95328110a69bcb75f.md | 4 +- .../64fb0fa0968f2b113b2d90e9.md | 4 +- .../64fb1061ca838611ed6a7d6b.md | 4 +- .../64fb1321e189a6136d200f77.md | 4 +- .../64fb1436adef3e145b4c3501.md | 4 +- .../64fb14d890415c14f93069ce.md | 4 +- .../64fb154a7c48cd159924bb18.md | 4 +- .../64fb1c4dc0feb219149a7c7d.md | 4 +- .../64fb285637fa1e1c222033e3.md | 4 +- .../64fb29348a60361ccd45c1e2.md | 4 +- .../64fefebad99209211ec30537.md | 4 +- .../64ff0313700dad264d19dfe4.md | 4 +- .../64ff04cc33779427a6412449.md | 4 +- .../64ff068e0426eb288874ed79.md | 4 +- .../64ff23daf176a92de95f24dc.md | 4 +- .../64ff24b80431f62ec6b93f65.md | 4 +- .../65003986d17d1e1865b269c0.md | 4 +- .../650046832f92c01a35834bca.md | 4 +- .../650048b0764f9c1b798200e2.md | 4 +- .../65004ba581d03d1d5628b41c.md | 4 +- .../6632420f81f3cc554a5e540b.md | 4 +- .../66ad0f178ed5791ed898fe56.md | 4 +- .../671682cd6d7aa95f0078f35f.md | 4 +- .../67168a7243b6396cb69c1bdf.md | 4 +- .../64faca774fd9fd74bc084cc9.md | 47 ++- .../64facf6180824876f70a2e86.md | 363 ------------------ .../64fad07f43a101779cb8692a.md | 4 +- .../64fad9cd2eeb1e7ca2ca8c8b.md | 4 +- .../64fadae4f2d51b7d5d8b98d8.md | 4 +- .../64fadff23375f27ff06c6d40.md | 4 +- .../64fae068bcdc9c805bd8399e.md | 4 +- .../64faedcd16a1e985c4c2dc94.md | 4 +- .../64faf0418e828c0114a558a7.md | 4 +- .../64faf65b22ad8d07df9be14d.md | 4 +- .../64faf874364ec308f875f636.md | 4 +- .../64fafac95328110a69bcb75f.md | 4 +- .../64fb0fa0968f2b113b2d90e9.md | 4 +- .../64fb1061ca838611ed6a7d6b.md | 4 +- .../64fb1321e189a6136d200f77.md | 4 +- .../64fb1436adef3e145b4c3501.md | 4 +- .../64fb14d890415c14f93069ce.md | 4 +- .../64fb154a7c48cd159924bb18.md | 4 +- .../64fb1c4dc0feb219149a7c7d.md | 4 +- .../64fb285637fa1e1c222033e3.md | 4 +- .../64fb29348a60361ccd45c1e2.md | 4 +- .../64fefebad99209211ec30537.md | 4 +- .../64ff0313700dad264d19dfe4.md | 4 +- .../64ff04cc33779427a6412449.md | 4 +- .../64ff068e0426eb288874ed79.md | 4 +- .../64ff23daf176a92de95f24dc.md | 4 +- .../64ff24b80431f62ec6b93f65.md | 4 +- .../65003986d17d1e1865b269c0.md | 4 +- .../650046832f92c01a35834bca.md | 4 +- .../650048b0764f9c1b798200e2.md | 4 +- .../65004ba581d03d1d5628b41c.md | 4 +- .../6632420f81f3cc554a5e540b.md | 4 +- .../66ad0f178ed5791ed898fe56.md | 4 +- .../671682cd6d7aa95f0078f35f.md | 4 +- .../67168a7243b6396cb69c1bdf.md | 4 +- 72 files changed, 287 insertions(+), 939 deletions(-) delete mode 100644 curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md delete mode 100644 curriculum/challenges/english/25-front-end-development/workshop-todo-app/64facf6180824876f70a2e86.md diff --git a/curriculum/challenges/_meta/learn-localstorage-by-building-a-todo-app/meta.json b/curriculum/challenges/_meta/learn-localstorage-by-building-a-todo-app/meta.json index a9f8c29d1ac..f43fa5947aa 100644 --- a/curriculum/challenges/_meta/learn-localstorage-by-building-a-todo-app/meta.json +++ b/curriculum/challenges/_meta/learn-localstorage-by-building-a-todo-app/meta.json @@ -144,140 +144,136 @@ "title": "Step 34" }, { - "id": "64facf6180824876f70a2e86", + "id": "64fad07f43a101779cb8692a", "title": "Step 35" }, { - "id": "64fad07f43a101779cb8692a", + "id": "64fad9cd2eeb1e7ca2ca8c8b", "title": "Step 36" }, { - "id": "64fad9cd2eeb1e7ca2ca8c8b", + "id": "64fadae4f2d51b7d5d8b98d8", "title": "Step 37" }, { - "id": "64fadae4f2d51b7d5d8b98d8", + "id": "64fadff23375f27ff06c6d40", "title": "Step 38" }, { - "id": "64fadff23375f27ff06c6d40", + "id": "64faf0418e828c0114a558a7", "title": "Step 39" }, { - "id": "64faf0418e828c0114a558a7", + "id": "64fae068bcdc9c805bd8399e", "title": "Step 40" }, { - "id": "64fae068bcdc9c805bd8399e", + "id": "64faedcd16a1e985c4c2dc94", "title": "Step 41" }, { - "id": "64faedcd16a1e985c4c2dc94", + "id": "64faf65b22ad8d07df9be14d", "title": "Step 42" }, { - "id": "64faf65b22ad8d07df9be14d", + "id": "64faf874364ec308f875f636", "title": "Step 43" }, { - "id": "64faf874364ec308f875f636", + "id": "64fafac95328110a69bcb75f", "title": "Step 44" }, { - "id": "64fafac95328110a69bcb75f", + "id": "64fb0fa0968f2b113b2d90e9", "title": "Step 45" }, { - "id": "64fb0fa0968f2b113b2d90e9", + "id": "64fb1061ca838611ed6a7d6b", "title": "Step 46" }, { - "id": "64fb1061ca838611ed6a7d6b", + "id": "64fb1321e189a6136d200f77", "title": "Step 47" }, { - "id": "64fb1321e189a6136d200f77", + "id": "64fb1436adef3e145b4c3501", "title": "Step 48" }, { - "id": "64fb1436adef3e145b4c3501", + "id": "64fb14d890415c14f93069ce", "title": "Step 49" }, { - "id": "64fb14d890415c14f93069ce", + "id": "64fb154a7c48cd159924bb18", "title": "Step 50" }, { - "id": "64fb154a7c48cd159924bb18", + "id": "64fb1c4dc0feb219149a7c7d", "title": "Step 51" }, { - "id": "64fb1c4dc0feb219149a7c7d", + "id": "64fb285637fa1e1c222033e3", "title": "Step 52" }, { - "id": "64fb285637fa1e1c222033e3", + "id": "64fb29348a60361ccd45c1e2", "title": "Step 53" }, { - "id": "64fb29348a60361ccd45c1e2", + "id": "64fefebad99209211ec30537", "title": "Step 54" }, { - "id": "64fefebad99209211ec30537", + "id": "64ff0313700dad264d19dfe4", "title": "Step 55" }, { - "id": "64ff0313700dad264d19dfe4", + "id": "64ff04cc33779427a6412449", "title": "Step 56" }, { - "id": "64ff04cc33779427a6412449", + "id": "64ff068e0426eb288874ed79", "title": "Step 57" }, { - "id": "64ff068e0426eb288874ed79", + "id": "64ff23daf176a92de95f24dc", "title": "Step 58" }, { - "id": "64ff23daf176a92de95f24dc", + "id": "64ff24b80431f62ec6b93f65", "title": "Step 59" }, { - "id": "64ff24b80431f62ec6b93f65", + "id": "65003986d17d1e1865b269c0", "title": "Step 60" }, { - "id": "65003986d17d1e1865b269c0", + "id": "650046832f92c01a35834bca", "title": "Step 61" }, { - "id": "650046832f92c01a35834bca", + "id": "650048b0764f9c1b798200e2", "title": "Step 62" }, { - "id": "650048b0764f9c1b798200e2", + "id": "65004ba581d03d1d5628b41c", "title": "Step 63" }, { - "id": "65004ba581d03d1d5628b41c", + "id": "6632420f81f3cc554a5e540b", "title": "Step 64" }, { - "id": "6632420f81f3cc554a5e540b", + "id": "66ad0f178ed5791ed898fe56", "title": "Step 65" }, { - "id": "66ad0f178ed5791ed898fe56", + "id": "671682cd6d7aa95f0078f35f", "title": "Step 66" }, - { - "id": "671682cd6d7aa95f0078f35f", - "title": "Step 67" - }, { "id": "67168a7243b6396cb69c1bdf", - "title": "Step 68" + "title": "Step 67" } ], "helpCategory": "JavaScript", diff --git a/curriculum/challenges/_meta/workshop-todo-app/meta.json b/curriculum/challenges/_meta/workshop-todo-app/meta.json index 7898fa2c40a..dc57afe5d16 100644 --- a/curriculum/challenges/_meta/workshop-todo-app/meta.json +++ b/curriculum/challenges/_meta/workshop-todo-app/meta.json @@ -145,141 +145,137 @@ "title": "Step 34" }, { - "id": "64facf6180824876f70a2e86", + "id": "64fad07f43a101779cb8692a", "title": "Step 35" }, { - "id": "64fad07f43a101779cb8692a", + "id": "64fad9cd2eeb1e7ca2ca8c8b", "title": "Step 36" }, { - "id": "64fad9cd2eeb1e7ca2ca8c8b", + "id": "64fadae4f2d51b7d5d8b98d8", "title": "Step 37" }, { - "id": "64fadae4f2d51b7d5d8b98d8", + "id": "64fadff23375f27ff06c6d40", "title": "Step 38" }, { - "id": "64fadff23375f27ff06c6d40", + "id": "64faf0418e828c0114a558a7", "title": "Step 39" }, { - "id": "64faf0418e828c0114a558a7", + "id": "64fae068bcdc9c805bd8399e", "title": "Step 40" }, { - "id": "64fae068bcdc9c805bd8399e", + "id": "64faedcd16a1e985c4c2dc94", "title": "Step 41" }, { - "id": "64faedcd16a1e985c4c2dc94", + "id": "64faf65b22ad8d07df9be14d", "title": "Step 42" }, { - "id": "64faf65b22ad8d07df9be14d", + "id": "64faf874364ec308f875f636", "title": "Step 43" }, { - "id": "64faf874364ec308f875f636", + "id": "64fafac95328110a69bcb75f", "title": "Step 44" }, { - "id": "64fafac95328110a69bcb75f", + "id": "64fb0fa0968f2b113b2d90e9", "title": "Step 45" }, { - "id": "64fb0fa0968f2b113b2d90e9", + "id": "64fb1061ca838611ed6a7d6b", "title": "Step 46" }, { - "id": "64fb1061ca838611ed6a7d6b", + "id": "64fb1321e189a6136d200f77", "title": "Step 47" }, { - "id": "64fb1321e189a6136d200f77", + "id": "64fb1436adef3e145b4c3501", "title": "Step 48" }, { - "id": "64fb1436adef3e145b4c3501", + "id": "64fb14d890415c14f93069ce", "title": "Step 49" }, { - "id": "64fb14d890415c14f93069ce", + "id": "64fb154a7c48cd159924bb18", "title": "Step 50" }, { - "id": "64fb154a7c48cd159924bb18", + "id": "64fb1c4dc0feb219149a7c7d", "title": "Step 51" }, { - "id": "64fb1c4dc0feb219149a7c7d", + "id": "64fb285637fa1e1c222033e3", "title": "Step 52" }, { - "id": "64fb285637fa1e1c222033e3", + "id": "64fb29348a60361ccd45c1e2", "title": "Step 53" }, { - "id": "64fb29348a60361ccd45c1e2", + "id": "64fefebad99209211ec30537", "title": "Step 54" }, { - "id": "64fefebad99209211ec30537", + "id": "64ff0313700dad264d19dfe4", "title": "Step 55" }, { - "id": "64ff0313700dad264d19dfe4", + "id": "64ff04cc33779427a6412449", "title": "Step 56" }, { - "id": "64ff04cc33779427a6412449", + "id": "64ff068e0426eb288874ed79", "title": "Step 57" }, { - "id": "64ff068e0426eb288874ed79", + "id": "64ff23daf176a92de95f24dc", "title": "Step 58" }, { - "id": "64ff23daf176a92de95f24dc", + "id": "64ff24b80431f62ec6b93f65", "title": "Step 59" }, { - "id": "64ff24b80431f62ec6b93f65", + "id": "65003986d17d1e1865b269c0", "title": "Step 60" }, { - "id": "65003986d17d1e1865b269c0", + "id": "650046832f92c01a35834bca", "title": "Step 61" }, { - "id": "650046832f92c01a35834bca", + "id": "650048b0764f9c1b798200e2", "title": "Step 62" }, { - "id": "650048b0764f9c1b798200e2", + "id": "65004ba581d03d1d5628b41c", "title": "Step 63" }, { - "id": "65004ba581d03d1d5628b41c", + "id": "6632420f81f3cc554a5e540b", "title": "Step 64" }, { - "id": "6632420f81f3cc554a5e540b", + "id": "66ad0f178ed5791ed898fe56", "title": "Step 65" }, { - "id": "66ad0f178ed5791ed898fe56", + "id": "671682cd6d7aa95f0078f35f", "title": "Step 66" }, - { - "id": "671682cd6d7aa95f0078f35f", - "title": "Step 67" - }, { "id": "67168a7243b6396cb69c1bdf", - "title": "Step 68" + "title": "Step 67" } ], "helpCategory": "JavaScript" -} +} \ No newline at end of file diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md index 81ef21bbf0b..f0dd3595959 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faca774fd9fd74bc084cc9.md @@ -9,14 +9,55 @@ dashedName: step-34 You should display the `Cancel` and `Discard` buttons to the user only if there is some text present in the input fields. -To begin, within the `closeTaskFormBtn` event listener, create a `formInputsContainValues` variable to check if there is a value in the `titleInput` field **or** the `dateInput` field **or** the `descriptionInput` field. +Start by removing the `confirmCloseDialog.showModal();` line. + +Then inside the `closeTaskFormBtn` event listener, write some logic to check if there is a value in the `titleInput`, `dateInput` **or** the `descriptionInput` field. + +If any of those input fields has a value, then use the `showModal()` method on `confirmCloseDialog`. Otherwise, if there are no changes, call the `reset()` function to clear the input fields and hide the form modal. # --hints-- -You should use `const` to create a variable `formInputsContainValues` with the value `titleInput.value || dateInput.value || descriptionInput.value;` +If any of the input fields has a value, then the confirmation dialog should display. Otherwise, the `reset` function should be called. ```js -assert.match(code, /const\s+formInputsContainValues\s*=\s*(titleInput\.value\s*\|\|\s*dateInput\.value\s*\|\|\s*descriptionInput\.value|titleInput\.value\s*!==\s*null\s*\|\|\s*dateInput\.value\s*!==\s*null\s*\|\|\s*descriptionInput\.value\s*!==\s*null)\s*;?/) +const titleInput = document.getElementById("title-input"); +const dateInput = document.getElementById("date-input"); +const descriptionInput = document.getElementById("description-input"); +const closeTaskFormBtn = document.getElementById("close-task-form-btn"); +const cancelBtn = document.getElementById("cancel-btn"); +const confirmCloseDialog = document.getElementById("confirm-close-dialog"); + +const fields = [ + { name: "titleInput", element: titleInput, value: "Test title" }, + { name: "dateInput", element: dateInput, value: "2025-04-28" }, + { name: "descriptionInput", element: descriptionInput, value: "Test description" }, +]; + +closeTaskFormBtn.click(); +assert.isFalse(confirmCloseDialog.open); + +fields.forEach(({ name, element, value }) => { + titleInput.value = ""; + dateInput.value = ""; + descriptionInput.value = ""; + confirmCloseDialog.open = false; + + element.value = value; + + closeTaskFormBtn.click(); + + assert.isTrue(confirmCloseDialog.open); + + cancelBtn.click(); +}); + +// Now test for reset functionality + +titleInput.value = ""; +dateInput.value = ""; +descriptionInput.value = ""; +assert.isTrue(taskForm.classList.toggle("hidden")); +assert.isEmpty(currentTask); ``` # --seed-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md deleted file mode 100644 index 0fa6430e925..00000000000 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64facf6180824876f70a2e86.md +++ /dev/null @@ -1,363 +0,0 @@ ---- -id: 64facf6180824876f70a2e86 -title: Step 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create an `if` statement to check if `formInputsContainValues` is true. If `formInputsContainValues` is true, indicating that there are changes, use the `showModal()` method on `confirmCloseDialog`. Otherwise, if there are no changes, call the `reset()` function to clear the input fields and hide the form modal. - -# --hints-- - -You should create an `if` statement with the condition `formInputsContainValues`. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{/) -``` - -The `if` block of your `if` statement should contain `confirmCloseDialog.showModal();`. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{\s*confirmCloseDialog\.showModal\(\s*\)\s*;?/) -``` - -Your `if` statement should have an `else` block. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{\s*confirmCloseDialog\.showModal\(\s*\)\s*;?\s*\}\s*else\s*\{/) -``` - -You should call the `reset()` function in the `else` block of your `if` statement. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{\s*confirmCloseDialog\.showModal\(\s*\)\s*;?\s*\}\s*else\s*\{\s*reset\(\s*\)\s*;?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; ---fcc-editable-region-- - confirmCloseDialog.showModal(); ---fcc-editable-region-- -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } - - taskData.forEach( - ({ id, title, date, description }) => { - tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- ` - } - ); - - reset() -}); -``` diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md index 7e0775f0236..c59d132f139 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad07f43a101779cb8692a.md @@ -1,8 +1,8 @@ --- id: 64fad07f43a101779cb8692a -title: Step 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md index 440d632b222..e3e26e6bc1f 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md @@ -1,8 +1,8 @@ --- id: 64fad9cd2eeb1e7ca2ca8c8b -title: Step 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md index 3f2532a5ce4..a9092fa7382 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadae4f2d51b7d5d8b98d8.md @@ -1,8 +1,8 @@ --- id: 64fadae4f2d51b7d5d8b98d8 -title: Step 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md index d7f17450e24..2b19855569c 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fadff23375f27ff06c6d40.md @@ -1,8 +1,8 @@ --- id: 64fadff23375f27ff06c6d40 -title: Step 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md index d79c8abdad0..1ae493f1169 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fae068bcdc9c805bd8399e.md @@ -1,8 +1,8 @@ --- id: 64fae068bcdc9c805bd8399e -title: Step 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md index 633f22f894e..4ea64aaef43 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faedcd16a1e985c4c2dc94.md @@ -1,8 +1,8 @@ --- id: 64faedcd16a1e985c4c2dc94 -title: Step 42 +title: Step 41 challengeType: 0 -dashedName: step-42 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md index caca6956cd4..c4794a6ecf6 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf0418e828c0114a558a7.md @@ -1,8 +1,8 @@ --- id: 64faf0418e828c0114a558a7 -title: Step 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md index 7e2bb13db06..7c79633bc41 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf65b22ad8d07df9be14d.md @@ -1,8 +1,8 @@ --- id: 64faf65b22ad8d07df9be14d -title: Step 43 +title: Step 42 challengeType: 0 -dashedName: step-43 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md index c063cad3f50..e50972e645d 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64faf874364ec308f875f636.md @@ -1,8 +1,8 @@ --- id: 64faf874364ec308f875f636 -title: Step 44 +title: Step 43 challengeType: 0 -dashedName: step-44 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md index 28e80549360..1ea1cff5c3b 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fafac95328110a69bcb75f.md @@ -1,8 +1,8 @@ --- id: 64fafac95328110a69bcb75f -title: Step 45 +title: Step 44 challengeType: 0 -dashedName: step-45 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md index 3d01d4eaec0..f0909b91ff2 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb0fa0968f2b113b2d90e9.md @@ -1,8 +1,8 @@ --- id: 64fb0fa0968f2b113b2d90e9 -title: Step 46 +title: Step 45 challengeType: 0 -dashedName: step-46 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md index 8033fb285fd..3b156b5baa9 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1061ca838611ed6a7d6b.md @@ -1,8 +1,8 @@ --- id: 64fb1061ca838611ed6a7d6b -title: Step 47 +title: Step 46 challengeType: 0 -dashedName: step-47 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md index 43ef48dbee7..683a1ce2dab 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1321e189a6136d200f77.md @@ -1,8 +1,8 @@ --- id: 64fb1321e189a6136d200f77 -title: Step 48 +title: Step 47 challengeType: 0 -dashedName: step-48 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md index c25d526a84c..cf9644988ac 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1436adef3e145b4c3501.md @@ -1,8 +1,8 @@ --- id: 64fb1436adef3e145b4c3501 -title: Step 49 +title: Step 48 challengeType: 0 -dashedName: step-49 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md index 93810583ec5..793e636d5fe 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb14d890415c14f93069ce.md @@ -1,8 +1,8 @@ --- id: 64fb14d890415c14f93069ce -title: Step 50 +title: Step 49 challengeType: 0 -dashedName: step-50 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md index 0331d2393ce..77b7f8e538b 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb154a7c48cd159924bb18.md @@ -1,8 +1,8 @@ --- id: 64fb154a7c48cd159924bb18 -title: Step 51 +title: Step 50 challengeType: 0 -dashedName: step-51 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md index 402505ebede..4d2157c14a0 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb1c4dc0feb219149a7c7d.md @@ -1,8 +1,8 @@ --- id: 64fb1c4dc0feb219149a7c7d -title: Step 52 +title: Step 51 challengeType: 0 -dashedName: step-52 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md index 05e2e4c6d62..9cb80c695ee 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb285637fa1e1c222033e3.md @@ -1,8 +1,8 @@ --- id: 64fb285637fa1e1c222033e3 -title: Step 53 +title: Step 52 challengeType: 0 -dashedName: step-53 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md index 8814dc3f799..bae70fc9507 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fb29348a60361ccd45c1e2.md @@ -1,8 +1,8 @@ --- id: 64fb29348a60361ccd45c1e2 -title: Step 54 +title: Step 53 challengeType: 0 -dashedName: step-54 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md index 6b05c40279d..9c7d355e901 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64fefebad99209211ec30537.md @@ -1,8 +1,8 @@ --- id: 64fefebad99209211ec30537 -title: Step 55 +title: Step 54 challengeType: 0 -dashedName: step-55 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md index 578906c8407..8e7823ef2d8 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff0313700dad264d19dfe4.md @@ -1,8 +1,8 @@ --- id: 64ff0313700dad264d19dfe4 -title: Step 56 +title: Step 55 challengeType: 0 -dashedName: step-56 +dashedName: step-55 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md index 154d38bdc9a..9fb23d2b5f8 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff04cc33779427a6412449.md @@ -1,8 +1,8 @@ --- id: 64ff04cc33779427a6412449 -title: Step 57 +title: Step 56 challengeType: 0 -dashedName: step-57 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md index ed5117c6192..702554252a5 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff068e0426eb288874ed79.md @@ -1,8 +1,8 @@ --- id: 64ff068e0426eb288874ed79 -title: Step 58 +title: Step 57 challengeType: 0 -dashedName: step-58 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md index 9f98ac818c5..e0d9215924e 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff23daf176a92de95f24dc.md @@ -1,8 +1,8 @@ --- id: 64ff23daf176a92de95f24dc -title: Step 59 +title: Step 58 challengeType: 0 -dashedName: step-59 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md index fdcc43181e8..c62c3d4a363 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/64ff24b80431f62ec6b93f65.md @@ -1,8 +1,8 @@ --- id: 64ff24b80431f62ec6b93f65 -title: Step 60 +title: Step 59 challengeType: 0 -dashedName: step-60 +dashedName: step-59 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md index e00ff428445..7a57da22bc8 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65003986d17d1e1865b269c0.md @@ -1,8 +1,8 @@ --- id: 65003986d17d1e1865b269c0 -title: Step 61 +title: Step 60 challengeType: 0 -dashedName: step-61 +dashedName: step-60 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md index 64529f54b21..a6f1ae09e97 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650046832f92c01a35834bca.md @@ -1,8 +1,8 @@ --- id: 650046832f92c01a35834bca -title: Step 62 +title: Step 61 challengeType: 0 -dashedName: step-62 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md index 79a6c152d7f..628a3a8056e 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/650048b0764f9c1b798200e2.md @@ -1,8 +1,8 @@ --- id: 650048b0764f9c1b798200e2 -title: Step 63 +title: Step 62 challengeType: 0 -dashedName: step-63 +dashedName: step-62 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md index 8ffac9d6ccd..1670f9b7ce0 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/65004ba581d03d1d5628b41c.md @@ -1,8 +1,8 @@ --- id: 65004ba581d03d1d5628b41c -title: Step 64 +title: Step 63 challengeType: 0 -dashedName: step-64 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md index 640a2c830d6..17a88eddaf4 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/6632420f81f3cc554a5e540b.md @@ -1,8 +1,8 @@ --- id: 6632420f81f3cc554a5e540b -title: Step 65 +title: Step 64 challengeType: 0 -dashedName: step-65 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/66ad0f178ed5791ed898fe56.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/66ad0f178ed5791ed898fe56.md index 6d83efbb882..27c13ed6ed9 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/66ad0f178ed5791ed898fe56.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/66ad0f178ed5791ed898fe56.md @@ -1,8 +1,8 @@ --- id: 66ad0f178ed5791ed898fe56 -title: Step 66 +title: Step 65 challengeType: 0 -dashedName: step-66 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/671682cd6d7aa95f0078f35f.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/671682cd6d7aa95f0078f35f.md index 07865bd0c69..784e0ec2670 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/671682cd6d7aa95f0078f35f.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/671682cd6d7aa95f0078f35f.md @@ -1,8 +1,8 @@ --- id: 671682cd6d7aa95f0078f35f -title: Step 67 +title: Step 66 challengeType: 0 -dashedName: step-67 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/67168a7243b6396cb69c1bdf.md b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/67168a7243b6396cb69c1bdf.md index e8e011de464..1e9ce996d2f 100644 --- a/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/67168a7243b6396cb69c1bdf.md +++ b/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-localstorage-by-building-a-todo-app/67168a7243b6396cb69c1bdf.md @@ -1,8 +1,8 @@ --- id: 67168a7243b6396cb69c1bdf -title: Step 68 +title: Step 67 challengeType: 0 -dashedName: step-68 +dashedName: step-67 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faca774fd9fd74bc084cc9.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faca774fd9fd74bc084cc9.md index 81ef21bbf0b..f0dd3595959 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faca774fd9fd74bc084cc9.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faca774fd9fd74bc084cc9.md @@ -9,14 +9,55 @@ dashedName: step-34 You should display the `Cancel` and `Discard` buttons to the user only if there is some text present in the input fields. -To begin, within the `closeTaskFormBtn` event listener, create a `formInputsContainValues` variable to check if there is a value in the `titleInput` field **or** the `dateInput` field **or** the `descriptionInput` field. +Start by removing the `confirmCloseDialog.showModal();` line. + +Then inside the `closeTaskFormBtn` event listener, write some logic to check if there is a value in the `titleInput`, `dateInput` **or** the `descriptionInput` field. + +If any of those input fields has a value, then use the `showModal()` method on `confirmCloseDialog`. Otherwise, if there are no changes, call the `reset()` function to clear the input fields and hide the form modal. # --hints-- -You should use `const` to create a variable `formInputsContainValues` with the value `titleInput.value || dateInput.value || descriptionInput.value;` +If any of the input fields has a value, then the confirmation dialog should display. Otherwise, the `reset` function should be called. ```js -assert.match(code, /const\s+formInputsContainValues\s*=\s*(titleInput\.value\s*\|\|\s*dateInput\.value\s*\|\|\s*descriptionInput\.value|titleInput\.value\s*!==\s*null\s*\|\|\s*dateInput\.value\s*!==\s*null\s*\|\|\s*descriptionInput\.value\s*!==\s*null)\s*;?/) +const titleInput = document.getElementById("title-input"); +const dateInput = document.getElementById("date-input"); +const descriptionInput = document.getElementById("description-input"); +const closeTaskFormBtn = document.getElementById("close-task-form-btn"); +const cancelBtn = document.getElementById("cancel-btn"); +const confirmCloseDialog = document.getElementById("confirm-close-dialog"); + +const fields = [ + { name: "titleInput", element: titleInput, value: "Test title" }, + { name: "dateInput", element: dateInput, value: "2025-04-28" }, + { name: "descriptionInput", element: descriptionInput, value: "Test description" }, +]; + +closeTaskFormBtn.click(); +assert.isFalse(confirmCloseDialog.open); + +fields.forEach(({ name, element, value }) => { + titleInput.value = ""; + dateInput.value = ""; + descriptionInput.value = ""; + confirmCloseDialog.open = false; + + element.value = value; + + closeTaskFormBtn.click(); + + assert.isTrue(confirmCloseDialog.open); + + cancelBtn.click(); +}); + +// Now test for reset functionality + +titleInput.value = ""; +dateInput.value = ""; +descriptionInput.value = ""; +assert.isTrue(taskForm.classList.toggle("hidden")); +assert.isEmpty(currentTask); ``` # --seed-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64facf6180824876f70a2e86.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64facf6180824876f70a2e86.md deleted file mode 100644 index 0fa6430e925..00000000000 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64facf6180824876f70a2e86.md +++ /dev/null @@ -1,363 +0,0 @@ ---- -id: 64facf6180824876f70a2e86 -title: Step 35 -challengeType: 0 -dashedName: step-35 ---- - -# --description-- - -Create an `if` statement to check if `formInputsContainValues` is true. If `formInputsContainValues` is true, indicating that there are changes, use the `showModal()` method on `confirmCloseDialog`. Otherwise, if there are no changes, call the `reset()` function to clear the input fields and hide the form modal. - -# --hints-- - -You should create an `if` statement with the condition `formInputsContainValues`. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{/) -``` - -The `if` block of your `if` statement should contain `confirmCloseDialog.showModal();`. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{\s*confirmCloseDialog\.showModal\(\s*\)\s*;?/) -``` - -Your `if` statement should have an `else` block. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{\s*confirmCloseDialog\.showModal\(\s*\)\s*;?\s*\}\s*else\s*\{/) -``` - -You should call the `reset()` function in the `else` block of your `if` statement. - -```js -assert.match(code, /if\s*\(\s*formInputsContainValues\s*\)\s*\{\s*confirmCloseDialog\.showModal\(\s*\)\s*;?\s*\}\s*else\s*\{\s*reset\(\s*\)\s*;?\s*\}/) -``` - -# --seed-- - -## --seed-contents-- - -```html - - - - - - - - Learn localStorage by Building a Todo App - - - - -
-

Todo App

-
- - - -
-

Discard unsaved changes?

-
- - -
-
-
-
-
-
- - - - -``` - -```css -:root { - --white: #fff; - --light-grey: #f5f6f7; - --dark-grey: #0a0a23; - --yellow: #f1be32; - --golden-yellow: #feac32; -} - -*, -*::before, -*::after { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - background-color: var(--dark-grey); -} - -main { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -h1 { - color: var(--light-grey); - margin: 20px 0 40px 0; -} - -.todo-app { - background-color: var(--white); - width: 300px; - height: 350px; - border: 5px solid var(--yellow); - border-radius: 8px; - padding: 15px; - position: relative; - display: flex; - flex-direction: column; - gap: 10px; -} - -.btn { - cursor: pointer; - width: 100px; - margin: 10px; - color: var(--dark-grey); - background-color: var(--golden-yellow); - background-image: linear-gradient(#fecc4c, #ffac33); - border-color: var(--golden-yellow); - border-width: 3px; -} - -.btn:hover { - background-image: linear-gradient(#ffcc4c, #f89808); -} - -.large-btn { - width: 80%; - font-size: 1.2rem; - align-self: center; - justify-self: center; -} - -.close-task-form-btn { - background: none; - border: none; - cursor: pointer; -} - -.close-icon { - width: 20px; - height: 20px; -} - -.task-form { - display: flex; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: var(--white); - border-radius: 5px; - padding: 15px; - width: 300px; - height: 350px; - flex-direction: column; - justify-content: space-between; - overflow: auto; -} - -.task-form-header { - display: flex; - justify-content: flex-end; -} - -.task-form-body { - display: flex; - flex-direction: column; - justify-content: space-around; -} - -.task-form-footer { - display: flex; - justify-content: center; -} - -.task-form-label, -#title-input, -#date-input, -#description-input { - display: block; -} - -.task-form-label { - margin-bottom: 5px; - font-size: 1.3rem; - font-weight: bold; -} - -#title-input, -#date-input, -#description-input { - width: 100%; - margin-bottom: 10px; - padding: 2px; -} - -#confirm-close-dialog { - padding: 10px; - margin: 10px auto; - border-radius: 15px; -} - -.confirm-close-dialog-btn-container { - display: flex; - justify-content: center; - margin-top: 10px; -} - -.discard-message-text { - font-weight: bold; - font-size: 1.5rem; -} - -#tasks-container { - height: 100%; - overflow-y: auto; -} - -.task { - margin: 5px 0; -} - -.hidden { - display: none; -} - -@media (min-width: 576px) { - .todo-app, - .task-form { - width: 400px; - height: 450px; - } - - .task-form-label { - font-size: 1.5rem; - } - - #title-input, - #date-input { - height: 2rem; - } - - #title-input, - #date-input, - #description-input { - padding: 5px; - margin-bottom: 20px; - } -} -``` - -```js -const taskForm = document.getElementById("task-form"); -const confirmCloseDialog = document.getElementById("confirm-close-dialog"); -const openTaskFormBtn = document.getElementById("open-task-form-btn"); -const closeTaskFormBtn = document.getElementById("close-task-form-btn"); -const addOrUpdateTaskBtn = document.getElementById("add-or-update-task-btn"); -const cancelBtn = document.getElementById("cancel-btn"); -const discardBtn = document.getElementById("discard-btn"); -const tasksContainer = document.getElementById("tasks-container"); -const titleInput = document.getElementById("title-input"); -const dateInput = document.getElementById("date-input"); -const descriptionInput = document.getElementById("description-input"); - -const taskData = []; -let currentTask = {}; - -const reset = () => { - titleInput.value = ""; - dateInput.value = ""; - descriptionInput.value = ""; - taskForm.classList.toggle("hidden"); - currentTask = {}; -} - -openTaskFormBtn.addEventListener("click", () => - taskForm.classList.toggle("hidden") -); - -closeTaskFormBtn.addEventListener("click", () => { - const formInputsContainValues = titleInput.value || dateInput.value || descriptionInput.value; ---fcc-editable-region-- - confirmCloseDialog.showModal(); ---fcc-editable-region-- -}); - -cancelBtn.addEventListener("click", () => confirmCloseDialog.close()); - -discardBtn.addEventListener("click", () => { - confirmCloseDialog.close(); - reset() -}); - -taskForm.addEventListener("submit", (e) => { - e.preventDefault(); - - const dataArrIndex = taskData.findIndex((item) => item.id === currentTask.id); - const taskObj = { - id: `${titleInput.value.toLowerCase().split(" ").join("-")}-${Date.now()}`, - title: titleInput.value, - date: dateInput.value, - description: descriptionInput.value, - }; - - if (dataArrIndex === -1) { - taskData.unshift(taskObj); - } - - taskData.forEach( - ({ id, title, date, description }) => { - tasksContainer.innerHTML += ` -
-

Title: ${title}

-

Date: ${date}

-

Description: ${description}

- - -
- ` - } - ); - - reset() -}); -``` diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad07f43a101779cb8692a.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad07f43a101779cb8692a.md index 7e0775f0236..c59d132f139 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad07f43a101779cb8692a.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad07f43a101779cb8692a.md @@ -1,8 +1,8 @@ --- id: 64fad07f43a101779cb8692a -title: Step 36 +title: Step 35 challengeType: 0 -dashedName: step-36 +dashedName: step-35 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md index 440d632b222..e3e26e6bc1f 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fad9cd2eeb1e7ca2ca8c8b.md @@ -1,8 +1,8 @@ --- id: 64fad9cd2eeb1e7ca2ca8c8b -title: Step 37 +title: Step 36 challengeType: 0 -dashedName: step-37 +dashedName: step-36 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadae4f2d51b7d5d8b98d8.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadae4f2d51b7d5d8b98d8.md index 3f2532a5ce4..a9092fa7382 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadae4f2d51b7d5d8b98d8.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadae4f2d51b7d5d8b98d8.md @@ -1,8 +1,8 @@ --- id: 64fadae4f2d51b7d5d8b98d8 -title: Step 38 +title: Step 37 challengeType: 0 -dashedName: step-38 +dashedName: step-37 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadff23375f27ff06c6d40.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadff23375f27ff06c6d40.md index d7f17450e24..2b19855569c 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadff23375f27ff06c6d40.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fadff23375f27ff06c6d40.md @@ -1,8 +1,8 @@ --- id: 64fadff23375f27ff06c6d40 -title: Step 39 +title: Step 38 challengeType: 0 -dashedName: step-39 +dashedName: step-38 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fae068bcdc9c805bd8399e.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fae068bcdc9c805bd8399e.md index d79c8abdad0..1ae493f1169 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fae068bcdc9c805bd8399e.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fae068bcdc9c805bd8399e.md @@ -1,8 +1,8 @@ --- id: 64fae068bcdc9c805bd8399e -title: Step 41 +title: Step 40 challengeType: 0 -dashedName: step-41 +dashedName: step-40 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faedcd16a1e985c4c2dc94.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faedcd16a1e985c4c2dc94.md index 633f22f894e..4ea64aaef43 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faedcd16a1e985c4c2dc94.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faedcd16a1e985c4c2dc94.md @@ -1,8 +1,8 @@ --- id: 64faedcd16a1e985c4c2dc94 -title: Step 42 +title: Step 41 challengeType: 0 -dashedName: step-42 +dashedName: step-41 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf0418e828c0114a558a7.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf0418e828c0114a558a7.md index caca6956cd4..c4794a6ecf6 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf0418e828c0114a558a7.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf0418e828c0114a558a7.md @@ -1,8 +1,8 @@ --- id: 64faf0418e828c0114a558a7 -title: Step 40 +title: Step 39 challengeType: 0 -dashedName: step-40 +dashedName: step-39 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf65b22ad8d07df9be14d.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf65b22ad8d07df9be14d.md index 7e2bb13db06..7c79633bc41 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf65b22ad8d07df9be14d.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf65b22ad8d07df9be14d.md @@ -1,8 +1,8 @@ --- id: 64faf65b22ad8d07df9be14d -title: Step 43 +title: Step 42 challengeType: 0 -dashedName: step-43 +dashedName: step-42 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf874364ec308f875f636.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf874364ec308f875f636.md index 14b0a7850dc..ebf0628b174 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf874364ec308f875f636.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64faf874364ec308f875f636.md @@ -1,8 +1,8 @@ --- id: 64faf874364ec308f875f636 -title: Step 44 +title: Step 43 challengeType: 0 -dashedName: step-44 +dashedName: step-43 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fafac95328110a69bcb75f.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fafac95328110a69bcb75f.md index 28e80549360..1ea1cff5c3b 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fafac95328110a69bcb75f.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fafac95328110a69bcb75f.md @@ -1,8 +1,8 @@ --- id: 64fafac95328110a69bcb75f -title: Step 45 +title: Step 44 challengeType: 0 -dashedName: step-45 +dashedName: step-44 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb0fa0968f2b113b2d90e9.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb0fa0968f2b113b2d90e9.md index 3d01d4eaec0..f0909b91ff2 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb0fa0968f2b113b2d90e9.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb0fa0968f2b113b2d90e9.md @@ -1,8 +1,8 @@ --- id: 64fb0fa0968f2b113b2d90e9 -title: Step 46 +title: Step 45 challengeType: 0 -dashedName: step-46 +dashedName: step-45 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1061ca838611ed6a7d6b.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1061ca838611ed6a7d6b.md index 8033fb285fd..3b156b5baa9 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1061ca838611ed6a7d6b.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1061ca838611ed6a7d6b.md @@ -1,8 +1,8 @@ --- id: 64fb1061ca838611ed6a7d6b -title: Step 47 +title: Step 46 challengeType: 0 -dashedName: step-47 +dashedName: step-46 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1321e189a6136d200f77.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1321e189a6136d200f77.md index 43ef48dbee7..683a1ce2dab 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1321e189a6136d200f77.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1321e189a6136d200f77.md @@ -1,8 +1,8 @@ --- id: 64fb1321e189a6136d200f77 -title: Step 48 +title: Step 47 challengeType: 0 -dashedName: step-48 +dashedName: step-47 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1436adef3e145b4c3501.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1436adef3e145b4c3501.md index c25d526a84c..cf9644988ac 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1436adef3e145b4c3501.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1436adef3e145b4c3501.md @@ -1,8 +1,8 @@ --- id: 64fb1436adef3e145b4c3501 -title: Step 49 +title: Step 48 challengeType: 0 -dashedName: step-49 +dashedName: step-48 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb14d890415c14f93069ce.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb14d890415c14f93069ce.md index 93810583ec5..793e636d5fe 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb14d890415c14f93069ce.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb14d890415c14f93069ce.md @@ -1,8 +1,8 @@ --- id: 64fb14d890415c14f93069ce -title: Step 50 +title: Step 49 challengeType: 0 -dashedName: step-50 +dashedName: step-49 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb154a7c48cd159924bb18.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb154a7c48cd159924bb18.md index 0331d2393ce..77b7f8e538b 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb154a7c48cd159924bb18.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb154a7c48cd159924bb18.md @@ -1,8 +1,8 @@ --- id: 64fb154a7c48cd159924bb18 -title: Step 51 +title: Step 50 challengeType: 0 -dashedName: step-51 +dashedName: step-50 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1c4dc0feb219149a7c7d.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1c4dc0feb219149a7c7d.md index 402505ebede..4d2157c14a0 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1c4dc0feb219149a7c7d.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb1c4dc0feb219149a7c7d.md @@ -1,8 +1,8 @@ --- id: 64fb1c4dc0feb219149a7c7d -title: Step 52 +title: Step 51 challengeType: 0 -dashedName: step-52 +dashedName: step-51 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb285637fa1e1c222033e3.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb285637fa1e1c222033e3.md index 05e2e4c6d62..9cb80c695ee 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb285637fa1e1c222033e3.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb285637fa1e1c222033e3.md @@ -1,8 +1,8 @@ --- id: 64fb285637fa1e1c222033e3 -title: Step 53 +title: Step 52 challengeType: 0 -dashedName: step-53 +dashedName: step-52 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb29348a60361ccd45c1e2.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb29348a60361ccd45c1e2.md index 8814dc3f799..bae70fc9507 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb29348a60361ccd45c1e2.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fb29348a60361ccd45c1e2.md @@ -1,8 +1,8 @@ --- id: 64fb29348a60361ccd45c1e2 -title: Step 54 +title: Step 53 challengeType: 0 -dashedName: step-54 +dashedName: step-53 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fefebad99209211ec30537.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fefebad99209211ec30537.md index 6b05c40279d..9c7d355e901 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fefebad99209211ec30537.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64fefebad99209211ec30537.md @@ -1,8 +1,8 @@ --- id: 64fefebad99209211ec30537 -title: Step 55 +title: Step 54 challengeType: 0 -dashedName: step-55 +dashedName: step-54 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff0313700dad264d19dfe4.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff0313700dad264d19dfe4.md index 578906c8407..8e7823ef2d8 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff0313700dad264d19dfe4.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff0313700dad264d19dfe4.md @@ -1,8 +1,8 @@ --- id: 64ff0313700dad264d19dfe4 -title: Step 56 +title: Step 55 challengeType: 0 -dashedName: step-56 +dashedName: step-55 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff04cc33779427a6412449.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff04cc33779427a6412449.md index 154d38bdc9a..9fb23d2b5f8 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff04cc33779427a6412449.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff04cc33779427a6412449.md @@ -1,8 +1,8 @@ --- id: 64ff04cc33779427a6412449 -title: Step 57 +title: Step 56 challengeType: 0 -dashedName: step-57 +dashedName: step-56 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff068e0426eb288874ed79.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff068e0426eb288874ed79.md index ed5117c6192..702554252a5 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff068e0426eb288874ed79.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff068e0426eb288874ed79.md @@ -1,8 +1,8 @@ --- id: 64ff068e0426eb288874ed79 -title: Step 58 +title: Step 57 challengeType: 0 -dashedName: step-58 +dashedName: step-57 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff23daf176a92de95f24dc.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff23daf176a92de95f24dc.md index 9f98ac818c5..e0d9215924e 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff23daf176a92de95f24dc.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff23daf176a92de95f24dc.md @@ -1,8 +1,8 @@ --- id: 64ff23daf176a92de95f24dc -title: Step 59 +title: Step 58 challengeType: 0 -dashedName: step-59 +dashedName: step-58 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff24b80431f62ec6b93f65.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff24b80431f62ec6b93f65.md index fdcc43181e8..c62c3d4a363 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff24b80431f62ec6b93f65.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/64ff24b80431f62ec6b93f65.md @@ -1,8 +1,8 @@ --- id: 64ff24b80431f62ec6b93f65 -title: Step 60 +title: Step 59 challengeType: 0 -dashedName: step-60 +dashedName: step-59 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65003986d17d1e1865b269c0.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65003986d17d1e1865b269c0.md index e00ff428445..7a57da22bc8 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65003986d17d1e1865b269c0.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65003986d17d1e1865b269c0.md @@ -1,8 +1,8 @@ --- id: 65003986d17d1e1865b269c0 -title: Step 61 +title: Step 60 challengeType: 0 -dashedName: step-61 +dashedName: step-60 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650046832f92c01a35834bca.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650046832f92c01a35834bca.md index 64529f54b21..a6f1ae09e97 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650046832f92c01a35834bca.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650046832f92c01a35834bca.md @@ -1,8 +1,8 @@ --- id: 650046832f92c01a35834bca -title: Step 62 +title: Step 61 challengeType: 0 -dashedName: step-62 +dashedName: step-61 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650048b0764f9c1b798200e2.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650048b0764f9c1b798200e2.md index 79a6c152d7f..628a3a8056e 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650048b0764f9c1b798200e2.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/650048b0764f9c1b798200e2.md @@ -1,8 +1,8 @@ --- id: 650048b0764f9c1b798200e2 -title: Step 63 +title: Step 62 challengeType: 0 -dashedName: step-63 +dashedName: step-62 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65004ba581d03d1d5628b41c.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65004ba581d03d1d5628b41c.md index 8ffac9d6ccd..1670f9b7ce0 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65004ba581d03d1d5628b41c.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/65004ba581d03d1d5628b41c.md @@ -1,8 +1,8 @@ --- id: 65004ba581d03d1d5628b41c -title: Step 64 +title: Step 63 challengeType: 0 -dashedName: step-64 +dashedName: step-63 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/6632420f81f3cc554a5e540b.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/6632420f81f3cc554a5e540b.md index 640a2c830d6..17a88eddaf4 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/6632420f81f3cc554a5e540b.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/6632420f81f3cc554a5e540b.md @@ -1,8 +1,8 @@ --- id: 6632420f81f3cc554a5e540b -title: Step 65 +title: Step 64 challengeType: 0 -dashedName: step-65 +dashedName: step-64 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/66ad0f178ed5791ed898fe56.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/66ad0f178ed5791ed898fe56.md index 6d83efbb882..27c13ed6ed9 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/66ad0f178ed5791ed898fe56.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/66ad0f178ed5791ed898fe56.md @@ -1,8 +1,8 @@ --- id: 66ad0f178ed5791ed898fe56 -title: Step 66 +title: Step 65 challengeType: 0 -dashedName: step-66 +dashedName: step-65 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/671682cd6d7aa95f0078f35f.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/671682cd6d7aa95f0078f35f.md index ebc8335b541..aa1a2a604e1 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/671682cd6d7aa95f0078f35f.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/671682cd6d7aa95f0078f35f.md @@ -1,8 +1,8 @@ --- id: 671682cd6d7aa95f0078f35f -title: Step 67 +title: Step 66 challengeType: 0 -dashedName: step-67 +dashedName: step-66 --- # --description-- diff --git a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/67168a7243b6396cb69c1bdf.md b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/67168a7243b6396cb69c1bdf.md index 31efe8f81d3..635c9e4b9e9 100644 --- a/curriculum/challenges/english/25-front-end-development/workshop-todo-app/67168a7243b6396cb69c1bdf.md +++ b/curriculum/challenges/english/25-front-end-development/workshop-todo-app/67168a7243b6396cb69c1bdf.md @@ -1,8 +1,8 @@ --- id: 67168a7243b6396cb69c1bdf -title: Step 68 +title: Step 67 challengeType: 0 -dashedName: step-68 +dashedName: step-67 --- # --description--