import React, { useEffect, useState } from "react"; import { Trash, ArrowLeftRight } from "lucide-react"; import { handleDeleteLoan } from "../utils/userHandler"; type Loan = { id: number; username: string; loan_code: number; start_date: string; end_date: string; take_date: string | null; returned_date: string | null; created_at: string; loaned_items_id: number[]; loaned_items_name: string[]; }; const formatDate = (iso: string | null) => { if (!iso) return "-"; const d = new Date(iso); if (Number.isNaN(d.getTime())) return iso; return d.toLocaleString("de-DE", { dateStyle: "short", timeStyle: "short" }); }; const readUserLoansFromStorage = (): Loan[] => { const raw = localStorage.getItem("userLoans"); if (!raw || raw === '"No loans found for this user"') return []; try { const parsed = JSON.parse(raw); return Array.isArray(parsed) ? (parsed as Loan[]) : []; } catch { return []; } }; const Form4: React.FC = () => { const [userLoans, setUserLoans] = useState(() => readUserLoansFromStorage() ); useEffect(() => { const onStorage = (e: StorageEvent) => { if (e.key === "userLoans") { setUserLoans(readUserLoansFromStorage()); } }; window.addEventListener("storage", onStorage); return () => window.removeEventListener("storage", onStorage); }, []); const onDelete = async (loanID: number) => { const ok = await handleDeleteLoan(loanID); if (ok) { setUserLoans((prev) => prev.filter((l) => Number(l.id) !== Number(loanID)) ); } }; if (userLoans.length === 0) { return (

Keine Ausleihen gefunden.

); } return (

Meine Ausleihen

Tippe auf das Papierkorb-Symbol, um eine Ausleihe zu löschen.

{/* Mobile: cards */}
{userLoans.map((loan) => (
Leihcode: {loan.loan_code}
Start:{" "} {formatDate(loan.start_date)}
Ende:{" "} {formatDate(loan.end_date)}
Abgeholt:{" "} {formatDate(loan.take_date)}
Zurück:{" "} {formatDate(loan.returned_date)}
Gegenstände:{" "} {Array.isArray(loan.loaned_items_name) ? loan.loaned_items_name.join(", ") : "-"}
))}
{/* Desktop: table */}
{userLoans.map((loan) => ( ))}
Leihcode Start Ende Abgeholt Zurückgegeben Erstellt Gegenstände Aktionen
{loan.loan_code} {formatDate(loan.start_date)} {formatDate(loan.end_date)} {formatDate(loan.take_date)} {formatDate(loan.returned_date)} {formatDate(loan.created_at)}
{Array.isArray(loan.loaned_items_name) ? loan.loaned_items_name.join(", ") : "-"}
{/* Scroll hint */}
Hinweis: Horizontal scrollen, um alle Spalten zu sehen.
); }; export default Form4;