Ignore:
Timestamp:
04/30/25 18:24:41 (2 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/Reservations.js

    rdeea3c4 re15e8d9  
    2424                const response = await axios.get(`http://localhost:8081/api/reservations/by/${userId}`);
    2525                setReservations(response.data);
     26                console.log(response.data)
    2627            } catch (error) {
    2728                console.error('Error fetching reservations:', error);
     
    8889                                        "Not specified"} </p>
    8990                                    <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                                    )}
    90122                                    <p className="card-text text-danger">Special Requests: {reservation.specialRequests || "None"}</p>
    91123                                    <p className="card-text">Status: {reservation.status || "Pending"}</p>
Note: See TracChangeset for help on using the changeset viewer.