--- import Layout from "../layouts/Layout.astro"; import SourceBadge from "../components/SourceBadge.astro"; import DataLegend from "../components/DataLegend.astro"; import { ago, api, plural, type SourceStatus } from "../lib/api"; let sources: SourceStatus[] = [], unavailable = false; try { sources = await api("/api/v1/source-status"); } catch { unavailable = true; } const labels = { healthy:"Актуален", stale:"Данные устарели", temporarily_limited:"Временная пауза", source_changed:"Источник изменился", waiting:"Ожидает запуска", disabled:"Выключен" }; ---
Прозрачность данных

Статус источников

Пауза или изменение страницы не удаляют уже опубликованные данные.

{unavailable ?

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

:
{sources.map(source =>
{labels[source.status]}

{source.name}

{source.observations} {plural(source.observations,["наблюдение","наблюдения","наблюдений"])}

{source.last_success_at ? `Последнее успешное обновление ${ago(source.last_success_at)}` : "Успешных запусков пока нет"}

)}
}