diff --git a/01-frontend/src/pages/Orders.tsx b/01-frontend/src/pages/Orders.tsx index 113d987..1ed4b95 100644 --- a/01-frontend/src/pages/Orders.tsx +++ b/01-frontend/src/pages/Orders.tsx @@ -1,34 +1,133 @@ -import { Box, Typography, Button } from "@mui/material"; -import { useNavigate } from "react-router-dom"; +import { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, Divider, List, ListItemButton, ListItemText, Paper, Stack, Tab, Tabs, Typography } from "@mui/material"; +import { useState } from "react"; import "./pages.css"; -export default function Orders() { - const navigate = useNavigate(); +type Order = { + id: string; + date: string; + status: "laufend" | "abgeschlossen"; + items: { name: string; quantity: number; price: number }[]; + total: number; + address: string; +}; - const handleGoHome = () => { - navigate("/"); +const mockOrders: Order[] = [ + { + id: "1001", + date: "2025-05-20", + status: "laufend", + items: [ + { name: "Tomatensamen", quantity: 2, price: 3.99 }, + { name: "Blumenerde", quantity: 1, price: 7.49 } + ], + total: 15.47, + address: "Musterstraße 1, 12345 Musterstadt" + }, + { + id: "1000", + date: "2025-05-10", + status: "abgeschlossen", + items: [ + { name: "Gießkanne", quantity: 1, price: 12.99 } + ], + total: 12.99, + address: "Musterstraße 1, 12345 Musterstadt" + } +]; + +export default function Orders() { + const [tab, setTab] = useState(0); + const [selectedOrder, setSelectedOrder] = useState(null); + + const laufendeBestellungen = mockOrders.filter(o => o.status === "laufend"); + const vergangeneBestellungen = mockOrders.filter(o => o.status === "abgeschlossen"); + + const handleTabChange = (_: React.SyntheticEvent, newValue: number) => setTab(newValue); + + const handleCancelOrder = (orderId: string) => { + // Hier API-Call zum Stornieren einbauen + alert(`Bestellung ${orderId} wurde storniert.`); + setSelectedOrder(null); }; return ( - - - Orders - - - Oops! The page you're looking for doesn't exist. - - - It seems you may have taken a wrong turn. Let's get you back on track. - - + + + + Meine Bestellungen + + + + + + + {tab === 0 ? ( + laufendeBestellungen.length > 0 ? ( + + {laufendeBestellungen.map(order => ( + setSelectedOrder(order)}> + + + ))} + + ) : ( + Keine laufenden Bestellungen. + ) + ) : ( + vergangeneBestellungen.length > 0 ? ( + + {vergangeneBestellungen.map(order => ( + setSelectedOrder(order)}> + + + ))} + + ) : ( + Keine vergangenen Bestellungen. + ) + )} + + setSelectedOrder(null)} maxWidth="sm" fullWidth> + + {selectedOrder?.status === "laufend" ? "Laufende Bestellung" : "Vergangene Bestellung"} #{selectedOrder?.id} + + + {selectedOrder && ( + + Bestelldatum: {selectedOrder.date} + Lieferadresse: {selectedOrder.address} + + Artikel: + + {selectedOrder.items.map((item, idx) => ( + + ))} + + + Gesamtsumme: {selectedOrder.total.toFixed(2)} € + + )} + + + {selectedOrder?.status === "laufend" && ( + + )} + + + + ); } \ No newline at end of file