feat: add activity evidence summaries

This commit is contained in:
ik
2026-09-21 20:15:17 +07:00
parent 0fed0f1bad
commit 2f3f6acd78
5 changed files with 33 additions and 1 deletions
@@ -1,5 +1,6 @@
---
import ActivityCard from "../../../components/ActivityCard.astro";
import ActivityEvidenceSummary from "../../../components/ActivityEvidenceSummary.astro";
import ActivityPeriodFilter from "../../../components/ActivityPeriodFilter.astro";
import AtlasBreadcrumbs from "../../../components/AtlasBreadcrumbs.astro";
import PageHero from "../../../components/PageHero.astro";
@@ -40,6 +41,7 @@ const schema = valid ? { "@type":"CollectionPage", name:`${fish!.name_ru} на $
<AtlasBreadcrumbs items={[{ label: "Водоёмы", href: "/waterbodies" }, { label: water?.name_ru ?? "Не найдено", href: water ? `/waterbodies/${water.slug}` : undefined }, { label: fish?.name_ru ?? "Не найдено" }]} />
<PageHero eyebrow={water?.name_ru ?? "Каталог RF4"} title={fish?.name_ru ?? "Данные не найдены"} description={valid ? `${totalItems} ${plural(totalItems,["свежая точка","свежие точки","свежих точек"])} за ${periodLabel}.` : undefined} variant={valid ? "pair" : undefined} identity={fish?.name_ru} secondaryIdentity={water?.slug} />
{valid && <ActivityPeriodFilter hours={hours} />}
{valid && <ActivityEvidenceSummary items={items} totalPoints={totalItems} periodLabel={periodLabel} />}
{unavailable ? <StatePanel tone="unavailable" title="Данные временно недоступны" description="Свежие наблюдения сейчас не получены. Попробуйте позднее." /> : !valid ? <StatePanel tone="error" title="Такого сочетания нет в справочнике" actionHref="/" actionLabel="Вернуться на главную" /> : <section class="catalog-results catalog-results--single content-grid"><div>{items.length ? items.map(item => <ActivityCard item={item} periodLabel={periodLabel}/>) : <StatePanel contained={false} title="Свежих точек пока нет" description="Данные появятся после новых подтверждённых наблюдений." />}</div></section>}
{valid && <Pagination path={`/waterbodies/${water!.slug}/${fish!.slug}`} params={new URLSearchParams({ hours })} total={totalItems} limit={activityLimit} offset={offset} itemLabel="точек" />}
</Layout>