diff --git a/admin/src/components/API/Landingpage.tsx b/admin/src/components/API/Landingpage.tsx deleted file mode 100644 index 5388f7f..0000000 --- a/admin/src/components/API/Landingpage.tsx +++ /dev/null @@ -1,238 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { - Spinner, - Text, - VStack, - Table, - Heading, - HStack, - Card, - SimpleGrid, - Button, -} from "@chakra-ui/react"; -import { Lock, LockOpen } from "lucide-react"; -import MyAlert from "../myChakra/MyAlert"; -import { formatDateTime } from "@/utils/userFuncs"; - -const API_BASE = - (import.meta as any).env?.VITE_BACKEND_URL || - import.meta.env.VITE_BACKEND_URL || - "http://localhost:8002"; - -type Loan = { - id: number; - username: string; - start_date: string; - end_date: string; - returned_date: string | null; - take_date: string | null; - loaned_items_name: string[] | string; -}; - -type Device = { - id: number; - item_name: string; - can_borrow_role: string; - inSafe: number; - entry_created_at: string; -}; - -const Landingpage: React.FC = () => { - const [isLoading, setIsLoading] = useState(false); - const [loans, setLoans] = useState([]); - const [devices, setDevices] = useState([]); - const [isError, setIsError] = useState(false); - const [errorStatus, setErrorStatus] = useState<"error" | "success">("error"); - const [errorMessage, setErrorMessage] = useState(""); - const [errorDsc, setErrorDsc] = useState(""); - - const setError = ( - status: "error" | "success", - message: string, - description: string - ) => { - setIsError(false); - setErrorStatus(status); - setErrorMessage(message); - setErrorDsc(description); - setIsError(true); - }; - - useEffect(() => { - const fetchData = async () => { - setIsLoading(true); - try { - const loanRes = await fetch(`${API_BASE}/apiV2/allLoans`); - const loanData = await loanRes.json(); - if (Array.isArray(loanData)) { - setLoans(loanData); - } else { - setError( - "error", - "Fehler beim Laden", - "Unerwartetes Datenformat erhalten. (Ausleihen)" - ); - } - - const deviceRes = await fetch(`${API_BASE}/apiV2/allItems`); - const deviceData = await deviceRes.json(); - if (Array.isArray(deviceData)) { - setDevices(deviceData); - } else { - setError( - "error", - "Fehler beim Laden", - "Unerwartetes Datenformat erhalten. (Geräte)" - ); - } - } catch (e) { - setError( - "error", - "Fehler beim Laden", - "Die Ausleihen konnten nicht geladen werden." - ); - } finally { - setIsLoading(false); - } - }; - fetchData(); - }, []); - - return ( - <> - - Matthias-Claudius-Schule Technik - - - - Alle Ausleihen - - - {isError && ( - - )} - - {isLoading && ( - - - Loading... - - )} - - {!isLoading && ( - - - - - # - - - Benutzername - - - Startdatum - - - Enddatum - - - Ausgeliehene Artikel - - - Rückgabedatum - - - Ausleihdatum - - - - - {loans.map((loan) => ( - - {loan.id} - {loan.username} - {formatDateTime(loan.start_date)} - {formatDateTime(loan.end_date)} - - {Array.isArray(loan.loaned_items_name) - ? loan.loaned_items_name.join(", ") - : loan.loaned_items_name} - - {formatDateTime(loan.returned_date)} - {formatDateTime(loan.take_date)} - - ))} - - - )} - - {!isLoading && loans.length === 0 && !isError && ( - - Keine Ausleihen vorhanden. - - )} - - - Alle Geräte - - - {/* Responsive Grid mit gleich hohen Karten */} - - {devices.map((device) => ( - - - {device.inSafe ? : } - {device.item_name} - - - Ausleihrolle: {device.can_borrow_role} - - - ))} - - - - Legende: - - - - - - ); -}; - -export default Landingpage;