ADD A NEW FEATURE MARK AS DONE
HERE,WE ADD A NEW BUTTON FOR EACH TASK CALLED DONE. WHEN CLICKED THE TASK STYLING CHANGES TO LINE THROUGH. IT GETS id AS A PARAMETER THROUGH WHICH A SINGLE TASK IS MARKED AS DONE.
TO ADD THIS FEATURE , A NEW PROPERTY IS ADDED IN THE TASK OBJECT isDone
{ task: "sampleTask", id: uuidv4(), isDone: false },
WHICH IS BY DEFAULT SET TO FALSE. WHEN CLICKED ON DONE BUTTON IT CHANGES TO TRUE.
WHEN isDone:true STYLING IS ADDED(LINE-THROUGH)
let markAsDone = (id) => {
setTask((prevTask) =>
prevTask.map((task) => {
if (task.id == id) {
return {
...task,
isDone: true,
};
} else {
return task;
}
})
);
};
ADDING STYLING
<span style={task.isDone ? { textDecoration: "line-through" } : {}}>
WE CAN ALSO ADD A FEATURE, MARK ALL AS DONE.
(UPDATE ALL)
let allDone = () => {
setTask((prevTask) =>
prevTask.map((task) => {
return {
...task,
isDone: true,
};
})
);
};


Comments
Post a Comment