From 9763c455923cfc55210694173e814d05fded336c Mon Sep 17 00:00:00 2001 From: "kartik.sharma" Date: Mon, 26 May 2025 12:54:24 +0530 Subject: [PATCH] In Report Popup from Daily Progress Report where validation message not showing properly in Completed Work Text box. --- src/components/Activities/ReportTask.jsx | 37 +++++++++++++++++------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/components/Activities/ReportTask.jsx b/src/components/Activities/ReportTask.jsx index 58d8ccd5..1b1f0188 100644 --- a/src/components/Activities/ReportTask.jsx +++ b/src/components/Activities/ReportTask.jsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState,useEffect } from "react"; import { formatDate } from "../../utils/dateUtils"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; @@ -13,15 +13,23 @@ export const ReportTask = ({ report, closeModal, refetch }) => { report?.workItem?.plannedWork - report?.workItem?.completedWork; const schema = z.object({ - completedTask: z - .number() - .min(0, "Completed Work must be greater than 0") - .max(maxPending, { - message: `Completed task cannot exceed total pending tasks: ${maxPending}`, - }) - .optional(), - comment: z.string().min(1, "Comment cannot be empty"), - }); + completedTask: z + .preprocess( + (val) => (val === "" || val === null || Number.isNaN(val) ? undefined : Number(val)), + z + .number({ + required_error: "Completed Work must be a number", + invalid_type_error: "Completed Work must be a number", + }) + .min(1, "Completed Work must be greater than 0") + .max(maxPending, { + message: `Completed task cannot exceed total pending tasks: ${maxPending}`, + }) + ), + comment: z.string().min(1, "Comment cannot be empty"), +}); + + const { register, handleSubmit, @@ -32,6 +40,14 @@ export const ReportTask = ({ report, closeModal, refetch }) => { defaultValues: { completedTask: 0, comment: "" }, }); + +useEffect(() => { + if (report) { + reset({ completedTask: 0, comment: "" }); // optional: customize default if needed + } +}, [report, reset]); + + const onSubmit = async (data) => { try { setloading(true); @@ -56,6 +72,7 @@ export const ReportTask = ({ report, closeModal, refetch }) => { }; const handleClose = () => { closeModal(); + reset(); }; return (