import React, { useState, useEffect } from 'react'; import axios from 'axios'; import 'bootstrap/dist/css/bootstrap.min.css'; import {useNavigate} from "react-router-dom"; import {jwtDecode} from "jwt-decode"; const Reservations = () => { const navigate = useNavigate(); const [reservations, setReservations] = useState([]); useEffect(() => { const fetchReservations = async () => { try { const token = localStorage.getItem("token"); if (!token) { console.error("No token found"); return; } const decodedToken = jwtDecode(token); console.log(decodedToken) const userId = decodedToken.iss; const response = await axios.get(`http://localhost:8081/api/reservations/by/${userId}`); 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:8081/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 (