diff --git a/src/components/Activities/Attendance.jsx b/src/components/Activities/Attendance.jsx index 0ee7fc97..e2f7b308 100644 --- a/src/components/Activities/Attendance.jsx +++ b/src/components/Activities/Attendance.jsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import moment from "moment"; import Avatar from "../common/Avatar"; import { convertShortTime } from "../../utils/dateUtils"; @@ -7,17 +7,38 @@ import usePagination from "../../hooks/usePagination"; import { useNavigate } from "react-router-dom"; const Attendance = ({ attendance, getRole, handleModalData }) => { - const { currentPage, totalPages, currentItems, paginate } = usePagination( - attendance, - 5 - ); const [loading, setLoading] = useState(false); const navigate = useNavigate(); + // Ensure attendance is an array + const attendanceList = Array.isArray(attendance) ? attendance : []; + + // Function to sort by first and last name + const sortByName = (a, b) => { + const nameA = (a.firstName + a.lastName).toLowerCase(); + const nameB = (b.firstName + b.lastName).toLowerCase(); + return nameA.localeCompare(nameB); + }; + + // Filter employees based on activity + const group1 = attendanceList + .filter((d) => d.activity === 1 || d.activity === 4) + .sort(sortByName); + const group2 = attendanceList + .filter((d) => d.activity === 0) + .sort(sortByName); + + const filteredData = [...group1, ...group2]; + + const { currentPage, totalPages, currentItems, paginate } = usePagination( + filteredData, + 5 + ); + return ( <>
{errors.markTime.message}
} @@ -124,7 +126,8 @@ const schemaReg = z.object({ -export const Regularization = ({modeldata,closeModal,handleSubmitForm})=>{ +export const Regularization = ( {modeldata, closeModal, handleSubmitForm} ) => +{ const [isLoading, setIsLoading] = useState(false); const coords = usePositionTracker(); diff --git a/src/components/Activities/Regularization.jsx b/src/components/Activities/Regularization.jsx index dd61c8a3..fe4bcec1 100644 --- a/src/components/Activities/Regularization.jsx +++ b/src/components/Activities/Regularization.jsx @@ -5,16 +5,31 @@ import RegularizationActions from "./RegularizationActions"; import { useSelector } from "react-redux"; import { useRegularizationRequests } from "../../hooks/useAttendance"; import moment from "moment"; +import usePagination from "../../hooks/usePagination"; const Regularization = ({ handleRequest }) => { - var selectedProject = useSelector((store) => store.localVariables.projectId); + var selectedProject = useSelector( ( store ) => store.localVariables.projectId ); + const [regularizesList, setregularizedList] = useState([]); const { regularizes, loading, error, refetch } = useRegularizationRequests(selectedProject); useEffect(() => { setregularizedList(regularizes); - }, [regularizes]); + }, [ regularizes ] ); + + const sortByName = (a, b) => { + const nameA = a.firstName.toLowerCase() + a.lastName.toLowerCase(); + const nameB = b.firstName.toLowerCase() + b.lastName.toLowerCase(); + return nameA.localeCompare(nameB); + }; + + const filteredData = regularizesList.sort(sortByName) + + const { currentPage, totalPages, currentItems, paginate } = usePagination( + filteredData, + 5 + ); return (