From 2a0c7b2fa5a378fd8972ca191c2e438273396bd5 Mon Sep 17 00:00:00 2001 From: IK Date: Thu, 10 Sep 2026 18:41:35 +0700 Subject: [PATCH] A04: Fix pagination 'load more' condition for server-side pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: Condition 'items.length < totalItems' always true for partial last page (e.g., 5 < 45 on offset=40), showing 'load more' link to empty page. Fix: Use 'offset + items.length < totalItems' to correctly detect when all items have been shown. Also update displayed counter to show 'offset + items.length из totalItems' for accurate progress. Verification: - Astro build: 0 errors - 45 items, page 0: shows '20 из 45', next link to offset=20 - 45 items, page 20: shows '40 из 45', next link to offset=40 - 45 items, page 40: shows '45 из 45', NO next link (45 < 45 = false) - Empty results: no next link (0 < 0 = false) --- apps/web/src/pages/index.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/pages/index.astro b/apps/web/src/pages/index.astro index aa3c8c3..a951296 100644 --- a/apps/web/src/pages/index.astro +++ b/apps/web/src/pages/index.astro @@ -69,7 +69,7 @@ const datasetJsonLd = {
{selectedWaterbody}{selectedFish}{periodLabel}{sortLabel}{filtersChanged && Сбросить}
-
За выбранный период

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

{items.length} из {totalItems} {plural(totalItems, ["точка", "точки", "точек"])}
{filterError ?

Некорректные фильтры

Выберите период и сортировку из предложенных значений.

Сбросить фильтры
: unavailable ?

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

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

: items.length ? <>
{items.map(item => )}
{items.length < totalItems && { const p = new URLSearchParams(params); p.delete("offset"); p.set("offset", String(offset + items.length)); return p.toString(); })()}#results`}>Показать ещё {items.length} из {totalItems}} :

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

Для выбранных фильтров нет одобренных наблюдений. Расширьте период или выберите другой водоём.

}
+
За выбранный период

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

{items.length} из {totalItems} {plural(totalItems, ["точка", "точки", "точек"])}
{filterError ?

Некорректные фильтры

Выберите период и сортировку из предложенных значений.

Сбросить фильтры
: unavailable ?

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

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

: items.length ? <>
{items.map(item => )}
{offset + items.length < totalItems && { const p = new URLSearchParams(params); p.delete("offset"); p.set("offset", String(offset + items.length)); return p.toString(); })()}#results`}>Показать ещё {offset + items.length} из {totalItems}} :

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

Для выбранных фильтров нет одобренных наблюдений. Расширьте период или выберите другой водоём.

}
{items[0] && leaderLevel && }
{signals.length > 0 && }