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; 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() ); // Keep in sync if localStorage changes (e.g., other tabs or parts of the app) 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

Wenn du eine Ausleihe ändern oder löschen möchtest, klicke auf das Papierkorb-Symbol.

{userLoans.map((loan) => ( ))}
Leihcode Start Ende Zurückgegeben Erstellt Gegenstände Aktionen
{loan.loan_code} {formatDate(loan.start_date)} {formatDate(loan.end_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;