import React, { useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import TimePicker from "../common/TimePicker"; import { usePositionTracker } from "../../hooks/usePositionTracker"; import { useDispatch, useSelector } from "react-redux"; import { markAttendance } from "../../slices/apiSlice/attedanceLogsSlice"; import showToast from "../../services/toastService"; import { checkIfCurrentDate } from "../../utils/dateUtils"; const schema = z.object({ markTime: z.string().nonempty({ message: "Time is required" }), description: z.string().max(200, "description should less than 200 chracters").optional() }); const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => { const projectId = useSelector((store) => store.localVariables.projectId) const [isLoading, setIsLoading] = useState(false); const coords = usePositionTracker(); const dispatch = useDispatch() const today = new Date().toISOString().split('T')[0]; const { register, handleSubmit, formState: { errors }, reset, setValue, } = useForm({ resolver: zodResolver(schema), mode: "onChange" }); const onSubmit = (data) => { let record = { ...data, date: new Date().toLocaleDateString(), latitude: coords.latitude, longitude: coords.longitude, employeeId: modeldata.employeeId, action: modeldata.action, id: modeldata?.id || null } if (modeldata.forWhichTab === 1) { handleSubmitForm(record) } else { // if ( modeldata?.currentDate && checkIfCurrentDate( modeldata?.currentDate ) ) // { dispatch(markAttendance(record)) .unwrap() .then((data) => { showToast("Attendance Marked Successfully", "success"); }) .catch((error) => { showToast(error, "error"); }); // } else // { // let formData = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude,employeeId:modeldata.employeeId,projectId:projectId,action:modeldata.action,id:modeldata?.id || null} // } } closeModal() }; return (
) } export default CheckCheckOutmodel; const schemaReg = z.object({ description: z.string().min(1, { message: "please give reason!" }) }); export const Regularization = ({ modeldata, closeModal, handleSubmitForm }) => { const [isLoading, setIsLoading] = useState(false); const coords = usePositionTracker(); const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(schemaReg), }); const getCurrentDate = () => { const today = new Date(); return today.toLocaleDateString('en-CA'); }; const onSubmit = (data) => { let record = { ...data, date: new Date().toLocaleDateString(), latitude: coords.latitude, longitude: coords.longitude, } handleSubmitForm(record) closeModal() }; return ( ) }