Changeset e15e8d9 for my-react-app/src/components/Reservations.js
- Timestamp:
- 04/30/25 18:24:41 (2 weeks ago)
- Branches:
- main
- Children:
- 2518b3a
- Parents:
- deea3c4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
my-react-app/src/components/Reservations.js
rdeea3c4 re15e8d9 24 24 const response = await axios.get(`http://localhost:8081/api/reservations/by/${userId}`); 25 25 setReservations(response.data); 26 console.log(response.data) 26 27 } catch (error) { 27 28 console.error('Error fetching reservations:', error); … … 88 89 "Not specified"} </p> 89 90 <p className="card-text">Party Size: {reservation.partySize || "Not specified"}</p> 91 {reservation.preOrderedItems && reservation.preOrderedItems.length > 0 ? ( 92 <div className="mt-3"> 93 <h5 className="text-primary">Pre-Ordered Items:</h5> 94 <ul className="list-group mb-3"> 95 {reservation.preOrderedItems.map((itemStr, index) => { 96 const parts = itemStr.split(':'); 97 const name = parts[0]; 98 const quantity = parseInt(parts[1], 10) || 0; 99 const price = parseFloat(parts[2]) || 0; 100 101 return ( 102 <li key={index} className="list-group-item d-flex justify-content-between align-items-center"> 103 <span><strong>{name}</strong> × {quantity}</span> 104 <span className="badge bg-success rounded-pill">${(price * quantity).toFixed(2)}</span> 105 </li> 106 ); 107 })} 108 </ul> 109 110 <div className="alert alert-info text-center" role="alert"> 111 <h5>Grand Total: ${reservation.preOrderedItems.reduce((acc, itemStr) => { 112 const parts = itemStr.split(':'); 113 const quantity = parseInt(parts[1], 10) || 0; 114 const price = parseFloat(parts[2]) || 0; 115 return acc + (quantity * price); 116 }, 0).toFixed(2)}</h5> 117 </div> 118 </div> 119 ) : ( 120 <p>No pre-ordered items.</p> 121 )} 90 122 <p className="card-text text-danger">Special Requests: {reservation.specialRequests || "None"}</p> 91 123 <p className="card-text">Status: {reservation.status || "Pending"}</p>
Note:
See TracChangeset
for help on using the changeset viewer.