--- import ActivityCard from "../../components/ActivityCard.astro"; import Layout from "../../layouts/Layout.astro"; import { api, plural, type Activity, type DictionaryItem, type PaginatedActivity } from "../../lib/api"; const { slug } = Astro.params; let fish: DictionaryItem | undefined, items: Activity[] = [], unavailable = false; try { const fishes = await api("/api/v1/fishes?limit=500"); fish = fishes.find(item => item.slug === slug); if (fish) { const paginated = await api(`/api/v1/activity?hours=72&fish=${encodeURIComponent(fish.slug)}&limit=100`); items = paginated.items; } } catch { unavailable = true; } if (unavailable) { Astro.response.status = 503; Astro.response.headers.set("Retry-After", "60"); Astro.response.headers.set("Cache-Control", "no-store"); } if (!fish && !unavailable) Astro.response.status = 404; const waters = [...new Map(items.map(item => [item.waterbody_slug, item.waterbody])).entries()]; const schema = fish ? { "@context":"https://schema.org", "@type":"CollectionPage", name:`Где ловить ${fish.name_ru} в RF4`, url:`https://rf4spotter.ru/fish/${fish.slug}` } : null; --- ← Все виды рыб
Свежие данные за 72 часа

{fish?.name_ru ?? "Рыба не найдена"}

{fish &&

{items.length} {plural(items.length,["активная точка","активные точки","активных точек"])} на {waters.length} {plural(waters.length,["водоёме","водоёмах","водоёмах"])}.

}
{unavailable ?

Данные временно недоступны

: !fish ?

Такой рыбы нет в справочнике

Открыть каталог
:
{items.length ? items.map(item => ) :

Свежих точек пока нет

Проверьте позже или посмотрите полевые сигналы на главной.

}
}