Skip to content

Commit a6960e3

Browse files
committed
deadline
1 parent 29d5a04 commit a6960e3

3 files changed

Lines changed: 19 additions & 3 deletions

File tree

Sprint-3/todo-list/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h1>My ToDo List</h1>
1515

1616
<div class="todo-input">
1717
<input type="text" id="new-task-input" placeholder="Enter a new task..." />
18+
<input type="date" id="deadline-input">
1819
<button id="add-task-btn">Add</button>
1920
</div>
2021

@@ -28,6 +29,7 @@ <h1>My ToDo List</h1>
2829
<template id="todo-item-template">
2930
<li class="todo-item"> <!-- include class "completed" if the task completed state is true -->
3031
<span class="description">Task description</span>
32+
<span class="deadline"></span>
3133
<div class="actions">
3234
<button class="complete-btn"><span class="fa-solid fa-check" aria-hidden="true"></span></button>
3335
<button class="delete-btn"><span class="fa-solid fa-trash" aria-hidden="true"></span></button>

Sprint-3/todo-list/script.mjs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@ window.addEventListener("load", () => {
2020
// append a new task to the todo list.
2121
function addNewTodo() {
2222
const taskInput = document.getElementById("new-task-input");
23+
const deadlineInput = document.getElementById("deadline-input");
24+
2325
const task = taskInput.value.trim();
26+
const deadline = deadlineInput.value || null;
2427
if (task) {
25-
Todos.addTask(todos, task, false);
28+
Todos.addTask(todos, task, false, deadline);
2629
render();
2730
}
2831

2932
taskInput.value = "";
33+
deadlineInput.value = "";
3034
}
3135

3236
// Note:
@@ -62,6 +66,16 @@ function createListItem(todo, index) {
6266
li.classList.add("completed");
6367
}
6468

69+
const deadlineEl = li.querySelector(".deadline");
70+
71+
if (todo.deadline) {
72+
const date = new Date(todo.deadline);
73+
const formattedDate = date.toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });
74+
deadlineEl.textContent = ` (Due: ${formattedDate})`;
75+
} else {
76+
deadlineEl.textContent = "";
77+
}
78+
6579
li.querySelector('.complete-btn').addEventListener("click", () => {
6680
Todos.toggleCompletedOnTask(todos, index);
6781
render();

Sprint-3/todo-list/todos.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
*/
1111

1212
// Append a new task to todos[]
13-
export function addTask(todos, task, completed = false) {
14-
todos.push({ task, completed });
13+
export function addTask(todos, task, completed = false, deadline = null) {
14+
todos.push({ task, completed, deadline });
1515
}
1616

1717
// Delete todos[taskIndex] if it exists

0 commit comments

Comments
 (0)