/* eslint-disable react/no-unused-prop-types */ /* eslint-disable react-hooks/exhaustive-deps */ /* eslint-disable react/no-array-index-key */ import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button/button"; import { Skeleton } from "@/components/ui/skeleton/skeleton"; import BookingRequestListItem from "@/features/demand/components/demand-list/components/booking-request-list-item"; import FlightRequestListItem from "@/features/demand/components/demand-list/components/flight-request-list-item"; import RentACarRequestListItem from "@/features/demand/components/demand-list/components/rent-a-car-request-list-item"; import TransferRequestListItem from "@/features/demand/components/demand-list/components/transfer-request-list-item"; import { useBookingRequestsMutation } from "@/services/eva-display/booking-request/booking-request.service"; interface BookingRequestListDataProps { moduleName?: "HotelModule" | "FlightModule" | "CarRentalModule"; status?: null | string; query?: string; isOnlyCurrentUser?: boolean; } const BookingRequestListData = (props: BookingRequestListDataProps) => { const bookingRequestQuery = useBookingRequestsMutation(); const [page, setPage] = useState(1); function getData() { bookingRequestQuery.mutate({ filter: { ModuleName: props.moduleName ?? undefined, RequestStatus: props.status ?? undefined, OnlyCurrentUser: props.isOnlyCurrentUser ?? undefined, SearchTerm: props.query ?? undefined, }, pagination: { pageNumber: page, pageSize: 10, }, sort: { sortColumn: "Id", }, }); } useEffect(() => { getData(); }, [page]); useEffect(() => { if (page === 1) { getData(); } else { setPage(1); } }, [props.moduleName, props.status, props.isOnlyCurrentUser, props.query]); const items = bookingRequestQuery.data?.items || []; if (!bookingRequestQuery.isSuccess) { return (