Перейти к содержимому
v2.5.0
English
Русский
Документация

PinField

PinField — составной компонент для кодов фиксированной длины, таких как одноразовые коды (OTP) и PIN.

Пропсы корня

ПропТипПо умолчанию
valuestring—
Контролируемый код.
defaultValuestring''
Начальный код для неконтролируемого использования. По умолчанию ''.
onChangeValue(value: string) => void—
Вызывается с кодом при его изменении.
disabledboolean—
Отключает поле ввода, делая его неинтерактивным. Также применяет визуальный стиль отключённого состояния.
placeholderstring—
Символ-заполнитель, который показывается, когда поле пустое.
sizePinFieldSize'md'
Визуальный размер поля PIN-кода. Влияет на габариты и размер шрифта.
errorboolean—
Показывает поле в состоянии ошибки.
refRef<HTMLDivElement>—
Ref на корневой элемент.
maskArray<RegExp | string> | RegExp—
Символы, которые принимает поле: RegExp для всего значения или массив с RegExp или фиксированным символом для каждой позиции. По умолчанию — цифры.
maxLengthnumber4
Количество символов в коде. По умолчанию 4.

Также принимает все атрибуты <div>.

Дочерние части

  • PinFieldInput: инпут, который хранит настоящее значение и обрабатывает фокус.
  • PinFieldSlot: видимый слот для одного индекса.
  • PinFieldSeparator: визуальный разделитель между группами.

PinFieldSlot

ПропТипПо умолчанию
indexобязательныйnumber—
Индекс слота в последовательности PinField (с нуля).

Также принимает все атрибуты <div>.

PinFieldSeparator

ПропТипПо умолчанию
sizePinFieldSize—
Управляет визуальным размером разделителя. Соответствует размеру окружающих элементов PinField.

Также принимает все атрибуты <div>.

PinFieldInput

ПропТипПо умолчанию
refRef<HTMLInputElement>—
Позволяет получить ref на экземпляр компонента. После размонтирования компонента React установит ref.current в null (или вызовет ref с null, если передан колбэк-ref).

Также принимает все атрибуты <input>.

Типы

  • PinFieldProps
  • PinFieldInputProps
  • PinFieldSlotProps
  • PinFieldSeparatorProps
  • PinFieldSize

Модель состояния

  • Корень отслеживает value, индекс активного слота и состояние «выделено всё».
  • PinFieldInput — настоящий редактируемый элемент управления.
  • Слоты получают из контекста содержимое, активное состояние, состояние плейсхолдера и стили отключённости и ошибки.
  • Корень принимает value, defaultValue и onChangeValue; PinFieldInput читает значение из корня и по-прежнему вызывает собственные onChange и onInput. Сброс формы восстанавливает defaultValue, если поле не контролируемое.
  • disabled и maxLength задаются только на PinField, поэтому инпут и слоты всегда согласованы.
  • placeholder корня одновременно служит плейсхолдером инпута.