├── README.md
├── 3 dots.jpg
├── delete.png
├── script.js
├── LICENSE
├── index.html
├── tasks.js
├── todo.js
└── style.css
/README.md:
--------------------------------------------------------------------------------
1 | # -JS-best-practices-code-review
--------------------------------------------------------------------------------
/3 dots.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hafiz1379/-JS-best-practices-code-review/HEAD/3 dots.jpg
--------------------------------------------------------------------------------
/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hafiz1379/-JS-best-practices-code-review/HEAD/delete.png
--------------------------------------------------------------------------------
/script.js:
--------------------------------------------------------------------------------
1 |
2 | function addNewTask() {
3 | const description = addInput.value;
4 | if (description) {
5 | Task.addTask(description);
6 | addInput.value = '';
7 | renderTasks();
8 | }
9 | }
10 | renderTasks();
11 | addButton.addEventListener('click', () => {
12 | addNewTask();
13 | });
14 | addInput.addEventListener('keypress', (event) => {
15 | if (event.key === 'Enter') {
16 | addNewTask();
17 | }
18 | });
19 | clearAllButton.addEventListener('click', () => {
20 | Task.clearAllTasks();
21 | renderTasks();
22 | });
23 |
24 | clearAllButton.addEventListener('click', () => {
25 | const tasks = Task.getTasks();
26 | const newTasks = tasks.filter((task) => !task.completed);
27 | newTasks.forEach((task, index) => {
28 | task.id = index + 1;
29 | });
30 | // Remove the event listener to avoid potential memory leaks
31 | clearAllButton.removeEventListener('click', clearAllButtonClickHandler);
32 | renderTasks();
33 | });
34 |
35 |
36 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Hafiz
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |