import toast from 'react-hot-toast'; import { useCallback, useMemo } from 'react'; // Helpers import { formatCurrency } from '@helper/helper'; // Types import { TBookingResponse } from '@type/booking'; // Components import Modal from '@component/Modal'; import Table from '@component/Table'; import Menus from '@component/Menus'; import { RiEditBoxFill } from 'react-icons/ri'; import { TbArrowNarrowRight } from 'react-icons/tb'; import { ImExit } from 'react-icons/im'; import BookingForm from './BookingForm'; import ConfirmMessage from '@component/ConfirmMessage'; // Hooks import useCheckOut from '@hook/bookings/useCheckout'; // Constants import { FORM } from '@constant/commons'; interface IBookingRow { booking: TBookingResponse; } const BookingRow = ({ booking }: IBookingRow) => { const { checkOutBooking } = useCheckOut(); const { id, users, startDate, endDate, rooms, amount, status } = booking; const statusText = status ? 'Check in' : 'Check out'; const formattedPrice = useMemo(() => formatCurrency(amount), [amount]); const renderEditBtn = useCallback( (onCloseModal: () => void) => ( }> Edit ), [] ); const renderCheckOutBtn = useCallback( (onCloseModal: () => void) => ( }> Checkout ), [] ); const handleClickCheckOutBtn = useCallback(() => { if (booking.status) { checkOutBooking({ idBooking: booking.id, roomId: booking!.rooms!.id, userId: booking!.users!.id, }); } else { toast.error('User already checkout!'); } }, [booking, checkOutBooking]); return (
{users?.name}
{startDate}     {endDate}
{rooms?.name}
{formattedPrice}
{statusText}
); }; export default BookingRow;