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
текста
![image](https://user-images.githubusercontent.com/14944123/182099379-86508d8b-e6d3-496e-a133-cfcb301cbffb.png)
![image](https://user-images.githubusercontent.com/14944123/182099510-243b552a-12c1-43d8-931d-043140a0d089.png)
Думаю стоит удалить возможность передавать
status
вFormItem
, пустьFormField
умеет. Кажетсяstatus
появился уFormItem
как раз для того, чтобы избежать пробросаstatus
в каждый компонент, который используетFormField
внутри себя.
status
вFormItem
не только влияет наFormField
, но и изменяет цвет уbottom
текста![]()
![]()
Я чуть не написал параметр caption
у FormField
, НО! Меня осенило...
По идее у нас не должно быть отдельных компонентов InputGroup
, SelectGroup
и подобных. У нас есть FormLayoutGroup
, который умеет группировать FormItem
. Вот он пусть продолжает всем этим заниматься.
Создавая компоненты такие как InputGroup
(#2869) мы куда-то не туда идём. Вот пример UI из PR:
![image](https://user-images.githubusercontent.com/5850354/182104068-eb93c7d3-b45e-4779-a2ea-1dda700e09aa.png)
- В блоке Введите ФИО, если я захочу показать текст ошибки, то мне надо будет динамически менять
<FormItem bottom="<текст_ошибки>">
. Надо будет также динамически менятьaria-describedby
, чтобы скринридер понимал к какому полю относится ошибка. - В блоке Выберите дату рождения тоже самое. Но если использовать на
FormLayoutForm
сFormItem
, то будет отдельная ошибка для каждого поля ввода.
Это "слипание" можно только для горизонтального режима включить в FormLayoutGroup
.
В общем вкину всё выше написаное на созвоне дизайнерам.