import { useEffect, useState } from "react"; import { Link, useParams } from "react-router-dom"; import { api } from "../api"; import Icon from "../components/Icon"; import { ProduktThumb } from "../components/ProduktBild"; import { fmt } from "../units"; /** * Ziel eines gescannten Lagerort-QR (/l/) – zeigt, was an diesem Ort (und * allen Unterorten) liegt, mit Bestand je Artikel. Von hier direkt einlagern. */ export default function LocationResolve() { const { id } = useParams(); const [data, setData] = useState(null); // { location_name, products: [...] } const [error, setError] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { setLoading(true); setError(null); api.locationContents(id) .then(setData) .catch((e) => setError(e.message)) .finally(() => setLoading(false)); }, [id]); const produkte = data?.products || []; return (

{data?.location_name || `Lagerort ${id}`}

{loading ? "Wird geladen…" : `${produkte.length} Artikel hier (inkl. Unterorte)`}
Hier einlagern
{error &&
{error}
}
{produkte.map((p) => ( ))} {!loading && produkte.length === 0 && ( )} {loading && ( )}
Artikel Bestand
{p.name} {p.brand &&
{p.brand}
}
{fmt(p.stock)} {p.unit_label} Details
Hier liegt gerade nichts.
Wird geladen…
); }