import React, { useState, useEffect } from 'react'; import axios from 'axios'; import 'bootstrap/dist/css/bootstrap.min.css'; import {useNavigate} from "react-router-dom"; const Reservations = () => { const navigate = useNavigate(); const [reservations, setReservations] = useState([]); useEffect(() => { const fetchReservations = async () => { try { const response = await axios.get('http://localhost:8080/api/reservations'); // Adjust URL as needed setReservations(response.data); } catch (error) { console.error('Error fetching reservations:', error); } }; fetchReservations(); }, []); const handleEditReservation = async (reservationId) => { if(reservationId!=null) { navigate(`/reservations/reservationEdit/${reservationId}`); } } const handleCancelReservation = async (reservationID) => { try { await axios.delete(`http://localhost:8080/api/reservations/delete/${reservationID}`); setReservations(reservations.filter(reservation => reservation.reservationID !== reservationID)); alert('Reservation canceled successfully!'); } catch (error) { console.error('Error canceling reservation:', error); alert('An error occurred while canceling the reservation. Please try again later.'); } }; return (

Reservations

{reservations.map(reservation => (
Reservation ID: {reservation.reservationID}
Restaurant: {reservation.restaurant.name}
Table Number: {reservation.table.id}
{/* Format reservation date and time */}
Reservation Date: {new Date(reservation.checkInTime).toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}
Reservation Time: {new Date(reservation.checkInTime).toLocaleTimeString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true })}
{/* End of formatted date and time */}
Party Size: {reservation.partySize}
Special Requests: {reservation.specialRequests}
Status: {reservation.status}
Grace period of 15 minutes +-

))}
); p }; export default Reservations;