Skip to content

[hook] Create usePaste hook #490

Description

@montanaaq

Предложение: хук usePaste

Привет! Я делаю поле ввода номера телефона с маской (+7 (999) 999-99-99) с помощью useMask из этой библиотеки и столкнулся с проблемой, когда пользователь вставляет полный номер, например 89990009991 или +79990009991.

Сейчас маска просто обрабатывает вставленные символы по одному и не понимает, что нужно отбросить ведущую 8 или +7, поэтому получается некорректный результат (+7 (899) 900-09-99 вместо +7 (999) 000-09-91).

На данный момент я решаю это вручную через обработчик onPaste: получаю текст из event.clipboardData.getData('text'), очищаю его, а затем заново устанавливаю значение через нативный setter, чтобы useMask обработал его как обычный ввод. Это работает, но получается довольно много шаблонного кода для задачи, которая кажется достаточно распространённой (маски ввода, поля с тегами, вставка URL, ID и т.д.).

Можно ли добавить в библиотеку небольшой хук usePaste?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions