--- import EntityMedia from "../components/EntityMedia.astro"; import PageHero from "../components/PageHero.astro"; import StatePanel from "../components/StatePanel.astro"; import Layout from "../layouts/Layout.astro"; import { api, type MediaAsset } from "../lib/api"; const allowed = new Set(["fish", "waterbody", "tackle", "reference"]); const requested = Astro.url.searchParams.get("type") ?? "fish"; const type = allowed.has(requested) ? requested : "fish"; let assets: MediaAsset[] = [], unavailable = false; try { assets = await api(`/api/v1/media/catalog?entity_type=${type}`); } catch { unavailable = true; } const labels: Record = {fish:"Рыбы",waterbody:"Водоёмы",tackle:"Снасти и приманки",reference:"Справочные материалы"}; ---
{unavailable ? : assets.length ?
{assets.map(asset =>

{asset.label ?? "Без подписи"}

{labels[asset.entity_type]}
)}
: }