From f9db1e65d1417bd1a111c1879d20c97b5b9bf41b Mon Sep 17 00:00:00 2001 From: Wissarut Kanasub Date: Sun, 26 Nov 2023 12:04:06 +0700 Subject: [PATCH] Add edit taskname button but still bad req --- .../src/components/kanbanBoard/taskCard.jsx | 77 +++++++++++++------ 1 file changed, 55 insertions(+), 22 deletions(-) diff --git a/frontend/src/components/kanbanBoard/taskCard.jsx b/frontend/src/components/kanbanBoard/taskCard.jsx index 1a151c8..01ca05a 100644 --- a/frontend/src/components/kanbanBoard/taskCard.jsx +++ b/frontend/src/components/kanbanBoard/taskCard.jsx @@ -1,11 +1,13 @@ import { useState } from "react"; -import { BsFillTrashFill } from "react-icons/bs"; +import { BsFillTrashFill, BsPencilSquare } from "react-icons/bs"; // Import the pencil icon import { useSortable } from "@dnd-kit/sortable"; import { CSS } from "@dnd-kit/utilities"; import { TaskDetailModal } from "./taskDetailModal"; export function TaskCard({ task, deleteTask, updateTask }) { const [mouseIsOver, setMouseIsOver] = useState(false); + const [isEditing, setIsEditing] = useState(false); + const [editedTaskName, setEditedTaskName] = useState(task.content); const { setNodeRef, attributes, listeners, transform, transition, isDragging } = useSortable({ id: task.id, @@ -20,22 +22,29 @@ export function TaskCard({ task, deleteTask, updateTask }) { transform: CSS.Transform.toString(transform), }; - { - /* If card is dragged */ - } if (isDragging) { return (
); } + const startEditing = () => { + setIsEditing(true); + }; + + const stopEditing = () => { + setIsEditing(false); + // Update the task name if it has changed + if (editedTaskName !== task.content) { + console.log("Updating task:", task.id, editedTaskName); + updateTask(task.id, { ...task, content: editedTaskName }); + } + }; + return (
{ setMouseIsOver(false); - }}> -

document.getElementById(`task_detail_modal_${task.id}`).showModal()}> - {task.content} -

+ }} + > + {isEditing ? ( + setEditedTaskName(e.target.value)} + onBlur={stopEditing} + autoFocus + /> + ) : ( +

document.getElementById(`task_detail_modal_${task.id}`).showModal()} + > + {task.content} +

+ )} {mouseIsOver && ( - +
+ {!isEditing && ( + + )} + +
)}