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 { 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 ( ) }