Changeset f5b256e for my-react-app/src/components/Reservations.js
- Timestamp:
- 04/28/25 14:20:18 (3 weeks ago)
- Branches:
- main
- Children:
- deea3c4
- Parents:
- 8ca35dc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
my-react-app/src/components/Reservations.js
r8ca35dc rf5b256e 20 20 } 21 21 const decodedToken = jwtDecode(token); 22 console.log(decodedToken)23 22 const userId = decodedToken.iss; 24 23 … … 49 48 } 50 49 }; 51 52 53 50 return ( 54 51 <div className="container"> 55 <h2>Reservations</h2>56 52 <div className="row"> 57 {reservations.map(reservation => ( 58 <div key={reservation.reservationID} className="col-md-4 mb-4"> 59 <div className="card"> 60 <div className="card-body"> 61 <div className="card-title">Reservation ID: {reservation.reservationID}</div> 62 <div className="card-text">Restaurant: {reservation.restaurant.name}</div> 63 <div className="card-text">Table Number: {reservation.table.id}</div> 64 {/* Format reservation date and time */} 65 <div className="card-text">Reservation 66 Date: {new Date(reservation.checkInTime).toLocaleDateString('en-US', { 67 weekday: 'long', 68 year: 'numeric', 69 month: 'long', 70 day: 'numeric' 71 })}</div> 72 <div className="card-text">Reservation 73 Time: {new Date(reservation.checkInTime).toLocaleTimeString('en-US', { 74 hour: 'numeric', 75 minute: 'numeric', 76 hour12: true 77 })}</div> 78 {/* End of formatted date and time */} 79 <div className="card-text">Party Size: {reservation.partySize}</div> 80 <div className="card-text text-danger">Special 81 Requests: {reservation.specialRequests}</div> 82 <div className="card-text">Status: {reservation.status}</div> 83 <div className="card-text text-danger">Grace period of 15 minutes +-</div> 84 <br/> 85 <div className="row"> 86 <div className="col"> 87 <button className="danger text-bg-warning border-0" 88 onClick={() => handleEditReservation(reservation.reservationID)}>Edit 89 Reservation 53 {reservations.length === 0 ? ( 54 <div className="text-center mt-5"> 55 <h4>No active reservations</h4> 56 <p>Looking for a place to dine? Check out our <a href="/restaurants" className="text-primary">restaurants</a>.</p> 57 </div> 58 ) : ( 59 reservations.map(reservation => ( 60 <div key={reservation.reservationID} className="col-md-4 mb-4"> 61 <div className="card h-100"> 62 <div className="card-body"> 63 <h5 className="card-title">Reservation ID: {reservation.reservationID}</h5> 64 <p className="card-text">Restaurant: {reservation?.restaurant.name || "Not specified"}</p> 65 <p className="card-text">Table Number: {reservation?.tableNumber || "Not specified"}</p> 66 <p className="card-text"> 67 Reservation Date: {reservation.checkInTime ? 68 new Date(reservation.checkInTime).toLocaleDateString('en-US', { 69 weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' 70 }) : 71 "Not specified"} 72 </p> 73 <p className="card-text"> 74 Reservation Time: {reservation.checkInTime ? 75 new Date(reservation.checkInTime).toLocaleTimeString('en-US', { 76 hour: 'numeric', minute: 'numeric', hour12: true 77 }) : 78 "Not specified"} 79 </p> 80 <p className="card-text">Reservation made on: {reservation.reservationDateTime ? 81 new Date(reservation.reservationDateTime).toLocaleTimeString('en-US', { 82 hour: 'numeric', minute: 'numeric', hour12: true 83 }) : 84 "Not specified"} {reservation.reservationDateTime ? 85 new Date(reservation.reservationDateTime).toLocaleDateString('en-US', { 86 weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' 87 }) : 88 "Not specified"} </p> 89 <p className="card-text">Party Size: {reservation.partySize || "Not specified"}</p> 90 <p className="card-text text-danger">Special Requests: {reservation.specialRequests || "None"}</p> 91 <p className="card-text">Status: {reservation.status || "Pending"}</p> 92 <p className="card-text text-danger">Grace period of 15 minutes +-</p> 93 <div className="d-flex justify-content-between mt-3"> 94 <button 95 className="btn btn-warning" 96 onClick={() => handleEditReservation(reservation.reservationID)}> 97 Edit Reservation 90 98 </button> 91 </div> 92 <div className="col"> 93 <button className="danger text-bg-danger border-0" 94 onClick={() => handleCancelReservation(reservation.reservationID)}>Cancel 95 Reservation 99 <button 100 className="btn btn-danger" 101 onClick={() => handleCancelReservation(reservation.reservationID)}> 102 Cancel Reservation 96 103 </button> 97 104 </div> … … 99 106 </div> 100 107 </div> 101 </div>102 ) )}108 )) 109 )} 103 110 </div> 104 111 </div> 105 112 ); 106 p107 108 113 }; 109 114 110 115 export default Reservations; 116
Note:
See TracChangeset
for help on using the changeset viewer.