-
Notifications
You must be signed in to change notification settings - Fork 44
fix(intl-phone-input): remove changing unclearable country code #730
Conversation
Собрана новая демка. |
Я чет не увидел разницы. Плюс каретка после введенного символа прыгает в конец инпута. Будет круто, если сделаешь видосы\гифки до\после |
@reme3d2y, Конечно Шаги для воспроизведения перейти на страницу оплаты мобильной связи Фактический результат: цифра заменяет +7 или встает между + и 7 |
Эта проблема актуальна, когда проп clearableCountryCode - false 2021-07-06.10.48.15.mov |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот такой кейс нашел
Собрана новая демка. |
@reme3d2y fixed |
@koretskyhub |
Хорошо бы, если бы каретка вставала не в конец инпута, а после введенного символа |
@reme3d2y @AleksandrSerov done done |
Собрана новая демка. |
import { getPhoneDiff } from './get-phone-diff'; | ||
|
||
const RUSSIAN_DIAL_CODE = '7'; | ||
const RUSSIAN_ALTERNATIVE_DIAL_CODE = '8'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
В контексте libphonenumber-js это называется RUSSIAN_NATIONAL_DIAL_CODE
Собрана новая демка. |
} | ||
} | ||
|
||
input.addEventListener('keyup', resetCaret); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Обработчики тогда ведь при каждом ререндере будут создаваться?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
да похоже
Это очень странно выглядит конечно с прыгающей кареткой |
@AleksandrSerov, я убрал свдиг каретки на код страны по кнопке. |
Собрана новая демка. |
Собрана новая демка. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Думаю этот ПР можно уже принять.
Нам мой взгляд компонент еще стоит допилить, но это можно сделать отдельно и позже.
- Не очень нравится, что блокируется каретка
- Не нравится, что даже если страна уже определилась, все равно можно ввести лишние символы. К тому же в таком случае слетает форматирование.
- В PhoneInput между цифрами дефисы. Стоит сделать консистентно везде
if (!input) return; | ||
|
||
const selectionStart = input.selectionStart || 0; | ||
const toLeftKey = event.keyCode === 37; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: можно на event.key заменить
Есть тасочка с еще одним кейсом для этого компонента, закину туда эти кейсы |
# [19.2.0](v19.1.0...v19.2.0) (2021-07-19) ### Bug Fixes * **intl-phone-input:** remove changing unclearable country code ([#730](#730)) ([6d219d6](6d219d6)) ### Features * **phone-input:** add 'clearableCountyCode' prop ([#749](#749)) ([d110ae7](d110ae7)) * **select:** add scroll handler ([#756](#756)) ([b25351b](b25351b)) * **tooltip:** add target ref property ([#755](#755)) ([9aa962d](9aa962d)) * **typography:** monospaceNumbers prop (PDS-255) ([#697](#697)) ([42d16a6](42d16a6))
🎉 This PR is included in version 19.2.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
ПРОДОЛЖАЕТ #703
Опишите проблему
Если каретка стоит до или внутри кода страны, пользователь начинает вводить символы, то каретка перемещается в конец кода страны
Шаги для воспроизведения
Открыть IntlPhoneInput
https://alfa-laboratory.github.io/core-components/master/?path=/story/%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B--intl-phone-input
Knob clearableCountryCode - false
Поставить каретку внутри/до кода страны
Ввести цифру
Ожидаемое поведение
Если каретка стоит до или внутри кода страны и пользователь начинает вводить символы, то символы должны добавляться после кода страны
Чек лист
Внешний вид
Тестовый стенд
Десктоп (если данных нет оставте блок пустым):
Смартфон (если данных нет оставте блок пустым):
Дополнительная информация
Дополнительная информация