In Report Popup from Daily Progress Report where validation message not showing properly in Completed Work Text box.

This commit is contained in:
kartik.sharma 2025-05-26 12:54:24 +05:30
parent 478b0ddad0
commit 9763c45592

View File

@ -1,4 +1,4 @@
import React, { useState } from "react"; import React, { useState,useEffect } from "react";
import { formatDate } from "../../utils/dateUtils"; import { formatDate } from "../../utils/dateUtils";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod"; import { zodResolver } from "@hookform/resolvers/zod";
@ -13,15 +13,23 @@ export const ReportTask = ({ report, closeModal, refetch }) => {
report?.workItem?.plannedWork - report?.workItem?.completedWork; report?.workItem?.plannedWork - report?.workItem?.completedWork;
const schema = z.object({ const schema = z.object({
completedTask: z completedTask: z
.number() .preprocess(
.min(0, "Completed Work must be greater than 0") (val) => (val === "" || val === null || Number.isNaN(val) ? undefined : Number(val)),
.max(maxPending, { z
message: `Completed task cannot exceed total pending tasks: ${maxPending}`, .number({
}) required_error: "Completed Work must be a number",
.optional(), invalid_type_error: "Completed Work must be a number",
comment: z.string().min(1, "Comment cannot be empty"), })
}); .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 { const {
register, register,
handleSubmit, handleSubmit,
@ -32,6 +40,14 @@ export const ReportTask = ({ report, closeModal, refetch }) => {
defaultValues: { completedTask: 0, comment: "" }, defaultValues: { completedTask: 0, comment: "" },
}); });
useEffect(() => {
if (report) {
reset({ completedTask: 0, comment: "" }); // optional: customize default if needed
}
}, [report, reset]);
const onSubmit = async (data) => { const onSubmit = async (data) => {
try { try {
setloading(true); setloading(true);
@ -56,6 +72,7 @@ export const ReportTask = ({ report, closeModal, refetch }) => {
}; };
const handleClose = () => { const handleClose = () => {
closeModal(); closeModal();
reset();
}; };
return ( return (