### Размер Размер задается с помощью свойства `size` .
Ширина компонента так же может регулироваться при помощи свойства `width` :
```tsx
import React from 'react';
import { CodeField } from '@salutejs/plasma-web';
export function App() {
return (
);
}
```
### Форма компонента и длина кода Форма компонента задается с помощью свойства `shape` , а длина кода с помощью `codeLength` :
```tsx
import React from 'react';
import { CodeField } from '@salutejs/plasma-web';
export function App() {
return (
);
}
```
### Допустимые символы и поведение ячейки при вводе некорректного символа За допустимые символы для ввода отвечает свойство `allowedSymbols` . Задается строкой или регулярным выражением.
Библиотека экспортирует наиболее используемые вариации допустимых символов:
`import { ONLY_DIGITS_PATTERN, ONLY_CHARS_PATTERN, ONLY_DIGITS_AND_CHARS_PATTERN } from '@salutejs/plasma-web';` Поведение ячейки при вводе некорректного символа регулируется свойством `itemErrorBehavior` :
```tsx
import React from 'react';
import { CodeField } from '@salutejs/plasma-web';
export function App() {
return (
);
}
```
### Поведение компонента при вводе некорректного кода и индикация ошибки При заполнении всех полей ввода срабатывает колбэк `onFullCodeEnter` .
При неверном вводе кода, поведние компонента управляется с помощью свойства `codeErrorBehavior` .
Индикация ошибки происходит с помощью флага `isError` и колбека `setIsError` :
```tsx
import React, { useState, useRef, Dispatch, SetStateAction } from 'react';
import { CodeField } from '@salutejs/plasma-web';
export function App() {
const [disabledFirst, setDisabledFirst] = useState(false);
const [isErrorFirst, setIsErrorFirst] = useState(false);
const [disabledSecond, setDisabledSecond] = useState(false);
const [isErrorSecond, setIsErrorSecond] = useState(false);
const onFullCodeEnter = (
code: string,
errorSetter: Dispatch>,
disableSetter: Dispatch>
) => {
disableSetter(true);
// имитация запроса на сервер
setTimeout(() => {
disableSetter(false);
if (code !== '123456') {
errorSetter(true);
}
}, 3000)
}
return (
onFullCodeEnter(code, setIsErrorFirst, setDisabledFirst)}
/>
onFullCodeEnter(code, setIsErrorSecond, setDisabledSecond)}
/>
);
}
```