From b9ff3ab4044c6fba8edb5df8689ec2ed7f9d63f7 Mon Sep 17 00:00:00 2001 From: ZProger Date: Mon, 17 Aug 2026 02:39:17 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20Transactions=20=D0=BE=D1=82=D0=BA=D1=80?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=BB=D1=81=D1=8F=20=D0=BD=D0=B0=20=D1=8F?= =?UTF-8?q?=D0=BD=D0=B2=D0=B0=D1=80=D0=B5=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=BE=20=D1=82=D0=B5=D0=BA=D1=83=D1=89=D0=B5=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=8F=D1=86=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit parseMonthParam передавал Number(null) дальше — а это 0, не NaN, поэтому проверка "отсутствует/невалиден -> fallback" не срабатывала и месяц зажимался в 1. Добавил явную проверку value === null и диапазон 1-12 вместо клампинга (тот же фикс для parseYearParam для единообразия). Co-Authored-By: Claude Sonnet 5 --- frontend/package.json | 2 +- frontend/src/pages/TransactionsPage.tsx | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 6ed548c..f812081 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "aurum-frontend", "private": true, - "version": "0.20.1", + "version": "0.20.2", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/pages/TransactionsPage.tsx b/frontend/src/pages/TransactionsPage.tsx index d104da0..fa8a48c 100644 --- a/frontend/src/pages/TransactionsPage.tsx +++ b/frontend/src/pages/TransactionsPage.tsx @@ -17,14 +17,18 @@ import type { Transaction, TransactionType } from "@/types"; const PAGE_SIZE = 20; -/** Clamp a query-param month to 1-12, falling back to `fallback` for - * anything missing or out of range (e.g. a hand-edited URL). */ +/** Parses a query-param month, falling back to `fallback` for anything + * missing or out of range (e.g. a hand-edited URL). Must check `value` + * for null before `Number()` — `Number(null)` is 0, not NaN, so a missing + * param would otherwise silently pass the integer check and clamp to 1. */ function parseMonthParam(value: string | null, fallback: number): number { + if (value === null) return fallback; const parsed = Number(value); - return Number.isInteger(parsed) ? Math.min(12, Math.max(1, parsed)) : fallback; + return Number.isInteger(parsed) && parsed >= 1 && parsed <= 12 ? parsed : fallback; } function parseYearParam(value: string | null, fallback: number): number { + if (value === null) return fallback; const parsed = Number(value); return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback; }