--- import Layout from "../layouts/Layout.astro"; import ActivityCard from "../components/ActivityCard.astro"; import { ago, api, kg, type Activity, type DictionaryItem } from "../lib/api"; const params = Astro.url.searchParams; const hours = params.get("hours") ?? "24"; const waterbody = params.get("waterbody") ?? ""; const fish = params.get("fish") ?? ""; const sort = params.get("sort") ?? "activity"; let items: Activity[] = [], fishes: DictionaryItem[] = [], waterbodies: DictionaryItem[] = []; let unavailable = false; try { [items, fishes, waterbodies] = await Promise.all([ api(`/api/v1/activity?hours=${hours}&waterbody=${waterbody}&fish=${fish}&sort=${sort}`), api("/api/v1/fishes"), api("/api/v1/waterbodies") ]); } catch { unavailable = true; } ---
RF4 Живая карта клёва

Выбирай место,
пока клюёт.

Свежие точки, рабочие приманки и честная оценка данных от игроков.

Туманное озеро на рассвете
Пульс водоёмов{items.length} точки показывают активность
За выбранный период

Горячие точки

{items.length} точки
{unavailable ?

Источник временно недоступен

Не показываем устаревшие догадки.

: items.length ?
{items.map(item => )}
:

Пока нет свежих данных

Попробуйте другой водоём или период.

}
{items[0] && }
Как читать данные

Не обещаем рыбу.
Показываем факты.

01

Свежесть

Чем старше сообщение, тем меньше оно влияет на активность.

02

Разные игроки

Десять уловов одного человека не равны десяти подтверждениям.

03

Уверенность

Каждая оценка объясняет, сколько данных за ней стоит.