Библиотеки / Dialog Fields

Dialog Fields

Надстройка для react-final-form, которая предоставляет полезные высокоуровневые компоненты для создания форм.

Краткое описание

Компонент DFDialog предназначен для упрощения создания форм и использует библиотеку react-final-form. Он поддерживает несколько предустановленных типов полей, список которых можно расширить, зарегистрировав новые с помощью registerDialogControl.

Контролы

  • Базовые контролы:
    • plain — статический текст;
    • text — редактируемый текст;
    • multi-text — пользовательский массив строк;
    • checkbox — чекбокс;
    • tumbler — переключатель;
    • radio — радиокнопка;
    • editable-list — список с возможностью удаления строк;
    • multi-editable-list — многоуровневый список с возможностью удаления строк;
    • text area — текстовая область;
    • select — селект (выпадающий элемент);
    • block — позволяет добавить ReactNode.
  • Пользовательские контролы.

Функциональные возможности

Установка

npm install @gravity-ui/dialog-fields

Необходимо установить все обязательные peer-зависимости:

npm install -D  @gravity-ui/uikit@^5 @bem-react/classname@1.6 react@^17

Использование

import {DFDialog, FormApi} from '@gravity-ui/dialog-fields';

interface FormValues {
  firstName: string;
  lastName: string;
}

function MyForm() {
  return (
    <DFDialog<FormValues>
      visible={true}
      headerProps={{
        title: 'My form',
      }}
      onAdd={(form) => {
        console.log(form.getState().values);
        return Promise.resolve();
      }}
      fields={[
        {
          name: 'firstName',
          type: 'text',
          caption: 'First name',
          tooltip: 'Description for first name field',
        },
        {
          name: 'lastName',
          type: 'text',
          caption: 'LastName',
          tooltip: 'Description for last name field',
        },
      ]}
    />
  );
}

C дополнительными примерами можно ознакомиться в Storybook.

О библиотеке
Звёзды
5
Версия
6.0.3
Последнее обновление
10.02.2025
Репозиторий
github.com/gravity-ui/dialog-fields
Лицензия
MIT License
Maintainers
Участники