{t("material.browse.hint")}
setQuery(e.target.value)}
onKeyDown={(e) => {
if (e.key === "Enter") submitSearch();
}}
/>
setCategory(v)}
options={[
{ value: "", label: t("material.browse.category.all") },
...AMBIENT_CATEGORIES.map((c) => ({ value: c, label: c })),
]}
/>
setResolution(v as AmbientResolution)}
options={[
{ value: "1K", label: "1K" },
{ value: "2K", label: "2K" },
{ value: "4K", label: "4K" },
]}
/>
{error &&
{error}
}
{items.map((it) => (
))}
{!loading && items.length === 0 && !error && (
{t("material.browse.empty")}
)}
{loading && {t("material.browse.loading")}}
{!loading && items.length > 0 && (
{t("material.browse.count", { shown: items.length, total })}
)}
{!loading && items.length < total && (
)}
);
}
/** Versteckter Bild-Datei-Picker mit sichtbarem Button. */
function ImagePickButton({ onFile }: { onFile: (file: File | null) => void }) {
const ref = useRef