- Timestamp:
- 04/30/25 18:24:41 (3 weeks ago)
- Branches:
- main
- Children:
- 2518b3a
- Parents:
- deea3c4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
my-react-app/src/components/ReservationConfirmation.js
rdeea3c4 re15e8d9 3 3 import axios from 'axios'; 4 4 import { useNavigate } from 'react-router-dom'; 5 import {jwtDecode} from "jwt-decode"; 5 import { useLocation } from 'react-router-dom'; 6 import { jwtDecode } from "jwt-decode"; 6 7 import {request} from "../axios_helper"; 7 8 import restaurants from "./Restaurants"; … … 10 11 const navigate = useNavigate(); 11 12 13 const location = useLocation(); 14 const preOrderedItems = location.state?.preOrderedItems || []; 12 15 const [restaurant, setRestaurant] = useState({}); 13 16 const [user, setUser] = useState({}); … … 59 62 specialRequests: specialRequests.trim(), 60 63 paymentStatus: 'Pending', 64 preOrderedItems: preOrderedItems.map(item => `${item.itemName}:${item.quantity}:${item.price}`) 61 65 }; 62 66 … … 117 121 return `${formattedDate} - ${formattedTime}`; 118 122 }; 123 124 const grandTotal = preOrderedItems.reduce((acc, item) => acc + item.price * item.quantity, 0).toFixed(2); 125 const itemQuantityString = preOrderedItems 126 .map(item => `${item.itemName}:${item.quantity}`) 127 .join(','); 119 128 120 129 return ( … … 156 165 <br /> 157 166 </p> 167 {preOrderedItems.length > 0 ? ( 168 <div className="row"> 169 {preOrderedItems.map((item) => ( 170 <div key={item.menuID} className="col-md-4 mb-4"> 171 <div className="list-group shadow-sm p-3"> 172 <p className="item"><strong>Item:</strong> {item.itemName}</p> 173 <p className="item"><strong>Price:</strong> ${item.price.toFixed(2)}</p> 174 <p className="item"><strong>Quantity:</strong> {item.quantity}</p> 175 <p className="item"><strong>Total:</strong> ${(item.price * item.quantity).toFixed(2)}</p> 176 </div> 177 </div> 178 ))} 179 180 <div className="col-12 mt-4"> 181 <div className="list-group shadow-sm p-4 text-center"> 182 <h4>Grand Total: ${grandTotal}</h4> 183 </div> 184 </div> 185 </div> 186 ) : ( 187 <p>No pre-ordered items.</p> 188 )} 158 189 </div> 159 190 <div className="card-footer">
Note:
See TracChangeset
for help on using the changeset viewer.