Refactor_Expenses #321
@ -4,7 +4,7 @@ import Avatar from "../common/Avatar";
|
|||||||
import { convertShortTime } from "../../utils/dateUtils";
|
import { convertShortTime } from "../../utils/dateUtils";
|
||||||
import RenderAttendanceStatus from "./RenderAttendanceStatus";
|
import RenderAttendanceStatus from "./RenderAttendanceStatus";
|
||||||
import { useSelector, useDispatch } from "react-redux";
|
import { useSelector, useDispatch } from "react-redux";
|
||||||
import { fetchAttendanceData } from "../../slices/apiSlice/attedanceLogsSlice";
|
import { fetchAttendanceData, setAttendanceData } from "../../slices/apiSlice/attedanceLogsSlice";
|
||||||
import DateRangePicker from "../common/DateRangePicker";
|
import DateRangePicker from "../common/DateRangePicker";
|
||||||
import eventBus from "../../services/eventBus";
|
import eventBus from "../../services/eventBus";
|
||||||
|
|
||||||
@ -28,14 +28,15 @@ const usePagination = (data, itemsPerPage) => {
|
|||||||
}
|
}
|
||||||
}, [maxPage]);
|
}, [maxPage]);
|
||||||
|
|
||||||
const resetPage = useCallback(() => setCurrentPage(1), []); // This is returned by the hook
|
// Ensure resetPage is returned by the hook
|
||||||
|
const resetPage = useCallback(() => setCurrentPage(1), []);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
currentPage,
|
currentPage,
|
||||||
totalPages: maxPage,
|
totalPages: maxPage,
|
||||||
currentItems,
|
currentItems,
|
||||||
paginate,
|
paginate,
|
||||||
resetPage, // Ensure resetPage is returned here
|
resetPage,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -177,26 +178,30 @@ const AttendanceLog = ({
|
|||||||
resetPage, // Destructure resetPage here
|
resetPage, // Destructure resetPage here
|
||||||
} = usePagination(processedData, 20);
|
} = usePagination(processedData, 20);
|
||||||
|
|
||||||
const handler = useCallback(
|
// Effect to reset pagination when search query changes
|
||||||
(msg) => {
|
useEffect(() => {
|
||||||
const { startDate, endDate } = dateRange;
|
resetPage();
|
||||||
const checkIn = msg.response.checkInTime.substring(0, 10);
|
}, [searchQuery, resetPage]); // Add resetPage to dependencies
|
||||||
if (
|
|
||||||
projectId === msg.projectId &&
|
|
||||||
startDate <= checkIn &&
|
|
||||||
checkIn <= endDate
|
|
||||||
) {
|
|
||||||
const updatedAttendance = data.map((item) =>
|
|
||||||
item.id === msg.response.id
|
|
||||||
? { ...item, ...msg.response }
|
|
||||||
: item
|
|
||||||
);
|
|
||||||
|
|
||||||
filtering(updatedAttendance);
|
const handler = useCallback(
|
||||||
}
|
(msg) => {
|
||||||
},
|
const { startDate, endDate } = dateRange;
|
||||||
[projectId, dateRange, data, filtering] // ✅ removed resetPage from deps
|
const checkIn = msg.response.checkInTime.substring(0, 10);
|
||||||
);
|
if (
|
||||||
|
projectId === msg.projectId &&
|
||||||
|
startDate <= checkIn &&
|
||||||
|
checkIn <= endDate
|
||||||
|
) {
|
||||||
|
const updatedAttendance = data.map((item) =>
|
||||||
|
item.id === msg.response.id
|
||||||
|
? { ...item, ...msg.response }
|
||||||
|
: item
|
||||||
|
);
|
||||||
|
dispatch(setAttendanceData(updatedAttendance)); // Update Redux store
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[projectId, dateRange, data, dispatch]
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -368,8 +373,7 @@ const handler = useCallback(
|
|||||||
No employee logs.
|
No employee logs.
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
)
|
)}
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
{!loading && !isRefreshing && processedData.length > 20 && (
|
{!loading && !isRefreshing && processedData.length > 20 && (
|
||||||
<nav aria-label="Page ">
|
<nav aria-label="Page ">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user