diff --git a/src/components/Activities/ReportTaskComments.jsx b/src/components/Activities/ReportTaskComments.jsx index 91399b79..9db42b3a 100644 --- a/src/components/Activities/ReportTaskComments.jsx +++ b/src/components/Activities/ReportTaskComments.jsx @@ -25,12 +25,11 @@ const schema = z.object({ const ReportTaskComments = ({ commentsData, closeModal }) => { const [loading, setloading] = useState(false); const [comments, setComment] = useState([]); - const [bgClass, setBgClass] = useState(""); const { register, handleSubmit, formState: { errors }, - reset, + reset, // Destructure reset from useForm } = useForm({ resolver: zodResolver(schema), }); @@ -38,19 +37,28 @@ const ReportTaskComments = ({ commentsData, closeModal }) => { const containerRef = useRef(null); const firstRender = useRef(true); - useEffect(() => { - setComment(commentsData?.comments); + const taskList = getCachedData("taskList"); + if (taskList && taskList.data && commentsData?.id) { + const currentTask = taskList.data.find(task => task.id === commentsData.id); + if (currentTask && currentTask.comments) { + setComment(currentTask.comments); + } else { + setComment(commentsData?.comments || []); + } + } else { + setComment(commentsData?.comments || []); + } + firstRender.current = true; }, [commentsData]); - // Scroll logic: scroll to bottom when new comments are added useEffect(() => { if (!firstRender.current && containerRef.current) { containerRef.current.scrollTop = containerRef.current.scrollHeight; } else { - firstRender.current = false; // Mark the first render as complete + firstRender.current = false; } - }, [comments]); // Run this when comments array is updated + }, [comments]); const onSubmit = async (data) => { let sendComment = { @@ -61,34 +69,40 @@ const ReportTaskComments = ({ commentsData, closeModal }) => { try { setloading(true); const resp = await TasksRepository.taskComments(sendComment); + setComment((prevItems) => [...prevItems, resp.data]); + const taskList = getCachedData("taskList"); - const updatedTaskList = taskList.data.map((task) => { - if (task.id === resp.data.taskAllocationId) { - const existingComments = Array.isArray(task.comments) - ? task.comments - : []; - return { - ...task, - comments: [...existingComments, resp.data], - }; - } - return task; - }); - cacheData("taskList", { - data: updatedTaskList, - projectId: taskList.projectId, - }); - reset(); + + if (taskList && taskList.data) { + const updatedTaskList = taskList.data.map((task) => { + if (task.id === resp.data.taskAllocationId) { + const existingComments = Array.isArray(task.comments) + ? task.comments + : []; + return { + ...task, + comments: [...existingComments, resp.data], + }; + } + return task; + }); + + cacheData("taskList", { + data: updatedTaskList, + projectId: taskList.projectId, + }); + } + + reset(); setloading(false); showToast("Successfully Sent", "success"); - // closeModal(); } catch (error) { setloading(false); showToast(error.response.data?.message || "Something went wrong", "error"); } }; - console.log("Kartik", commentsData) + return (
{ Activity Summary -

{commentsData?.workItem?.workArea?.floor?.building?.description}

@@ -114,9 +127,9 @@ const ReportTaskComments = ({ commentsData, closeModal }) => {

Assigned By : - {commentsData?.assignedBy.firstName + + {commentsData?.assignedBy?.firstName + " " + - commentsData?.assignedBy.lastName} + commentsData?.assignedBy?.lastName} {" "}

@@ -161,7 +174,6 @@ const ReportTaskComments = ({ commentsData, closeModal }) => { {...register("comment")} className="form-control" id="exampleFormControlTextarea1" - // rows="2" placeholder="Enter comment" /> {errors.comment && ( @@ -176,7 +188,7 @@ const ReportTaskComments = ({ commentsData, closeModal }) => { > Close -
@@ -184,23 +196,21 @@ const ReportTaskComments = ({ commentsData, closeModal }) => {