VKUI
VKUI copied to clipboard
[Feature] Добавить поле `status` для FormField
Для компонентов ввода задать статус можно только через FormItem, но нельзя задать отдельно(например когда поля сгруппированы)
Думаю стоит удалить возможность передавать status
в FormItem
, пусть FormField
умеет.
Кажется status
появился у FormItem
как раз для того, чтобы избежать проброса status
в каждый компонент, который использует FormField
внутри себя.
Если оставить так, то пользователь будет сталкиваться с проблемой
<FormItem top="Введите ФИО" status="valid">
<InputGroup>
<Input defaultValue="Иванов" status="error" /> // "valid" на FormItem перекроет этот статус
<Input defaultValue="Иван" />
<Input defaultValue="Иванович" />
</InputGroup>
</FormItem>
по идее он сам догадается как поправить, но всё же не очень хорошо, что такое возможно
Думаю стоит удалить возможность передавать
status
вFormItem
, пустьFormField
умеет.Кажется
status
появился уFormItem
как раз для того, чтобы избежать пробросаstatus
в каждый компонент, который используетFormField
внутри себя.
status
в FormItem
не только влияет на FormField
, но и изменяет цвет у bottom
текста


Думаю стоит удалить возможность передавать
status
вFormItem
, пустьFormField
умеет. Кажетсяstatus
появился уFormItem
как раз для того, чтобы избежать пробросаstatus
в каждый компонент, который используетFormField
внутри себя.
status
вFormItem
не только влияет наFormField
, но и изменяет цвет уbottom
текста![]()
![]()
Я чуть не написал параметр caption
у FormField
, НО! Меня осенило...
По идее у нас не должно быть отдельных компонентов InputGroup
, SelectGroup
и подобных. У нас есть FormLayoutGroup
, который умеет группировать FormItem
. Вот он пусть продолжает всем этим заниматься.
Создавая компоненты такие как InputGroup
(#2869) мы куда-то не туда идём. Вот пример UI из PR:

- В блоке Введите ФИО, если я захочу показать текст ошибки, то мне надо будет динамически менять
<FormItem bottom="<текст_ошибки>">
. Надо будет также динамически менятьaria-describedby
, чтобы скринридер понимал к какому полю относится ошибка. - В блоке Выберите дату рождения тоже самое. Но если использовать на
FormLayoutForm
сFormItem
, то будет отдельная ошибка для каждого поля ввода.
Это "слипание" можно только для горизонтального режима включить в FormLayoutGroup
.
В общем вкину всё выше написаное на созвоне дизайнерам.