From de4704f6cd07e061dd4810f4033d78f055557086 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Tue, 30 Jun 2026 10:09:55 +0000 Subject: [PATCH] =?UTF-8?q?fix(concept):=20step=3D"any"=20=E2=80=94=20step?= =?UTF-8?q?Mismatch=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=20submit=20=C2=AB=D0=A0=D0=B0=D1=81=D1=81=D1=87?= =?UTF-8?q?=D0=B8=D1=82=D0=B0=D1=82=D1=8C=20=D0=BA=D0=BE=D0=BD=D1=86=D0=B5?= =?UTF-8?q?=D0=BF=D1=86=D0=B8=D1=8E=C2=BB=20(#1953)=20(#2103)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/concept/ConceptParamsForm.tsx | 5 ++++- .../src/components/concept/ConceptProgramForm.tsx | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/concept/ConceptParamsForm.tsx b/frontend/src/components/concept/ConceptParamsForm.tsx index 95117f61..cac862bb 100644 --- a/frontend/src/components/concept/ConceptParamsForm.tsx +++ b/frontend/src/components/concept/ConceptParamsForm.tsx @@ -163,7 +163,10 @@ export function ConceptParamsForm({ id="land-cost" type="number" min={0} - step={1_000_000} + // step="any" — произвольная сумма ₽; step={1_000_000} давал HTML5 + // stepMismatch на не-кратных значениях → форма :invalid → submit молча + // блокировался (см. ConceptProgramForm fix). + step="any" value={params.land_cost_rub ?? ""} placeholder="Необязательно" onChange={(e) => { diff --git a/frontend/src/components/concept/ConceptProgramForm.tsx b/frontend/src/components/concept/ConceptProgramForm.tsx index 7c8f32f7..a7ab4ed7 100644 --- a/frontend/src/components/concept/ConceptProgramForm.tsx +++ b/frontend/src/components/concept/ConceptProgramForm.tsx @@ -383,7 +383,7 @@ export function ConceptProgramForm({ @@ -461,7 +461,7 @@ export function ConceptProgramForm({ aria-label="Глубина пятна секции, м" min={FOOTPRINT_MIN} max={FOOTPRINT_MAX} - step={1} + step="any" value={effFootprintD ?? ""} disabled={!catalogReady} onChange={(e) => @@ -542,7 +542,10 @@ export function ConceptProgramForm({ id="cpf-land-cost" type="number" min={0} - step={1_000_000} + // step="any" — иначе сид из кадастровой стоимости (не кратной шагу, + // напр. 74 766.08 ₽) даёт HTML5 stepMismatch → форма :invalid → + // браузер молча блокирует submit и кнопка «Рассчитать» не работает. + step="any" value={landCostRub ?? ""} placeholder="Необязательно" onChange={(e) => {