import React, { act, useEffect, useState } from 'react' import useAttendanceStatus, { ACTIONS } from '../../hooks/useAttendanceStatus'; // import AttendanceRepository from '../../repositories/AttendanceRepository'; import { useDispatch, useSelector } from 'react-redux'; import { usePositionTracker } from '../../hooks/usePositionTracker'; import {markCurrentAttendance} from '../../slices/apiSlice/attendanceAllSlice'; import {cacheData, getCachedData} from '../../slices/apiDataManager'; import showToast from '../../services/toastService'; const RegularizationActions = ({attendanceData,handleRequest,refresh}) => { const [status,setStatus] = useState() const [loadingApprove,setLoadingForApprove] = useState(false) const [loadingReject,setLoadingForReject] = useState(false) const projectId = useSelector((store)=>store.localVariables.projectId) const {latitude,longitude} = usePositionTracker(); const dispatch = useDispatch() const handleRegularization =(request_attendance,IsReqularize)=>{ if(IsReqularize){ setLoadingForApprove(true) }else{ setLoadingForReject(true) } // setLoading(true) let req_Data = { id:request_attendance.id || null, description: ` ${IsReqularize ? "Approved" : "Rejected"}! regularization request`, employeeId:request_attendance?.employeeId, projectId:projectId, date:new Date().toISOString(), markTime:new Date().toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit" }), latitude:latitude.toString(), longitude: longitude.toString(), action:IsReqularize ? 4 : 5, image:null } dispatch( markCurrentAttendance( req_Data ) ).then( ( action ) => { const regularizedList = getCachedData("regularizedList") const updatedata = regularizedList?.data?.filter( item => item.id !== action.payload.id ); cacheData("regularizedList",{data:updatedata,projectId:projectId}) setLoadingForApprove( false ) setLoadingForReject( false ) refresh() }).catch( ( error ) => { showToast(error.message,"error") }); } useEffect(()=>{ const {activity,checkInTime,checkOutTime} = attendanceData; if (activity === 2 && checkInTime !== null || checkOutTime !== null) { setStatus({ status: "Approve", action: ACTIONS.APPROVED, disabled: false, text: "Approve", color: 'btn-success', }); } },[attendanceData]) return (
{attendanceData.activity == 2 && ( <> )}
) } export default RegularizationActions