Ignore:
Timestamp:
04/30/25 18:24:41 (3 weeks ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Children:
2518b3a
Parents:
deea3c4
Message:

menu feature done

File:
1 edited

Legend:

Unmodified
Added
Removed
  • my-react-app/src/components/ReservationConfirmation.js

    rdeea3c4 re15e8d9  
    33import axios from 'axios';
    44import { useNavigate } from 'react-router-dom';
    5 import {jwtDecode} from "jwt-decode";
     5import { useLocation } from 'react-router-dom';
     6import { jwtDecode } from "jwt-decode";
    67import {request} from "../axios_helper";
    78import restaurants from "./Restaurants";
     
    1011    const navigate = useNavigate();
    1112
     13    const location = useLocation();
     14    const preOrderedItems = location.state?.preOrderedItems || [];
    1215    const [restaurant, setRestaurant] = useState({});
    1316    const [user, setUser] = useState({});
     
    5962            specialRequests: specialRequests.trim(),
    6063            paymentStatus: 'Pending',
     64            preOrderedItems: preOrderedItems.map(item => `${item.itemName}:${item.quantity}:${item.price}`)
    6165        };
    6266
     
    117121        return `${formattedDate} - ${formattedTime}`;
    118122    };
     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(',');
    119128
    120129    return (
     
    156165                                    <br />
    157166                                </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                                )}
    158189                            </div>
    159190                            <div className="card-footer">
Note: See TracChangeset for help on using the changeset viewer.