fix(concept): step="any" — stepMismatch блокировал submit «Рассчитать концепцию» (#1953) #2103

Merged
bot-backend merged 1 commit from fix/concept-land-cost-step-mismatch into main 2026-06-30 10:09:56 +00:00
2 changed files with 11 additions and 5 deletions

View file

@ -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) => {

View file

@ -383,7 +383,7 @@ export function ConceptProgramForm({
<input
id="cpf-floor-height"
type="number"
step={0.1}
step="any"
min={FLOOR_HEIGHT_MIN}
max={FLOOR_HEIGHT_MAX}
value={floorHeight}
@ -438,7 +438,7 @@ export function ConceptProgramForm({
aria-label="Ширина пятна секции, м"
min={FOOTPRINT_MIN}
max={FOOTPRINT_MAX}
step={1}
step="any"
value={effFootprintW ?? ""}
disabled={!catalogReady}
onChange={(e) =>
@ -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) => {