Skip to content

fix: BIM-20235 input-number add updateTextValueToNumberViewValue update#157

Open
chilledpaper wants to merge 1 commit intomainfrom
fix/BIM-20235
Open

fix: BIM-20235 input-number add updateTextValueToNumberViewValue update#157
chilledpaper wants to merge 1 commit intomainfrom
fix/BIM-20235

Conversation

@chilledpaper
Copy link
Copy Markdown
Contributor

@chilledpaper chilledpaper commented Sep 11, 2023

Related to BIM-20235

Для input type="number" существует баг, что при вводе точки, (input) событие передает пустое значение, не зависимо от того что было введено ранее (проблема мировая, описана например тут stackoverflow). Это значение сетится в наш value$, поэтому при вводе точки pupa-input-number сбрасывает свое значение, баг описан тут.

BIM-1

Изменил input type="number" на input type="string" и добавил updateTextValueToNumberViewValue

В двух словах, преобразуем строку в числовое представление, в случае если есть точка или запятая, сначала разбиваем строку на две части, потом склеиваем, убирая при это все не числовые символы. Так же, обрабатываем кейс, если число отрицательное.

image

Проверил альтернативные варианты, самый близкий, оставить input type="number" и передавать event: InputEvent, в случае если event.data === '.', не апдейтить значение. Это работает, но данный подход не обрабатывает кейсы, если пользователь стирает дробное значение или вырезает дробную часть до точки, тут снова передается пустое значение, которое сетится в формконтрол, последний кейс сложно обработать, т.к input передает "" и все что мы знаем от event, что было событие cut, но вырезал пользователь все число или только дробную часть не представляется возможным. Возможно этот кейс и не нужно покрывать, тогда есть более простое решение.

@chilledpaper chilledpaper force-pushed the fix/BIM-20235 branch 10 times, most recently from a005b1a to 8fa33e1 Compare September 13, 2023 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants