diff --git a/src/components/Activities/ReportTask.jsx b/src/components/Activities/ReportTask.jsx index 56790a8c..1d02b432 100644 --- a/src/components/Activities/ReportTask.jsx +++ b/src/components/Activities/ReportTask.jsx @@ -9,12 +9,16 @@ import { TasksRepository } from "../../repositories/TaskRepository"; export const ReportTask = ({ report, closeModal, refetch }) => { const [loading, setloading] = useState(false); + const maxPending = + report?.workItem?.plannedWork - report?.workItem?.completedWork; + const schema = z.object({ completedTask: z .number() - .min(1, "Completed Work must be at least 1") - - .int("Completed Work must be an integer") + .min(0, "Completed Work must be greater than 0") + .max(maxPending, { + message: `Completed task cannot exceed total pending tasks: ${maxPending}`, + }) .positive("Completed Work must be a positive number") .optional(), comment: z.string().min(1, "Comment cannot be empty"), @@ -25,6 +29,7 @@ export const ReportTask = ({ report, closeModal, refetch }) => { formState: { errors }, } = useForm({ resolver: zodResolver(schema), + defaultValues: { completedTask: 0, comment: "" }, }); const onSubmit = async (data) => { @@ -34,7 +39,7 @@ export const ReportTask = ({ report, closeModal, refetch }) => { ...data, id: report?.id, reportedDate: new Date().toISOString(), - checkList:[] + checkList: [], }; let response = await TasksRepository.reportTask(reportData); @@ -65,7 +70,10 @@ export const ReportTask = ({ report, closeModal, refetch }) => {