salute-developers / plasma

Salute Design System
MIT License
29 stars 20 forks source link

feat(new-hope): add react-hook-form to combobox #1542

Open iljs opened 1 week ago

iljs commented 1 week ago

Адаптация Combobox для ReactHookForm

What/why changed (Это обязательный заголовок)

  1. Добавлен метод getFormGenerator, который является оберткой и в последствии может быть легко адаптирован под select и autocomplite

Принцип работы:

  1. Сам компонент остается неизменным
  2. В конечной библиотеке делается merge с config
  3. Сам компонент попадает в boundler, куда поступает обычный компонент Combobox и Combobox в обертке getFormGenerator
  4. boundler смотрит типы и перенаправляет на нужный компонент ( с формой или без )

Работа getFormGenerator:

  1. Создается нативный hidden select и создается искусственный event при изменении value.
  2. Адаптирован под работу с multiselect

https://codesandbox.io/p/sandbox/fltmzq

📦 Published PR as canary version: Canary Versions
:sparkles: Test out this PR locally via: ```bash npm install @salutejs/plasma-asdk@0.196.0-canary.1542.11732695647.0 npm install @salutejs/plasma-b2c@1.438.0-canary.1542.11732695647.0 npm install @salutejs/plasma-new-hope@0.186.0-canary.1542.11732695647.0 npm install @salutejs/plasma-web@1.440.0-canary.1542.11732695647.0 npm install @salutejs/sdds-cs@0.169.0-canary.1542.11732695647.0 npm install @salutejs/sdds-dfa@0.166.0-canary.1542.11732695647.0 npm install @salutejs/sdds-finportal@0.160.0-canary.1542.11732695647.0 npm install @salutejs/sdds-insol@0.159.0-canary.1542.11732695647.0 npm install @salutejs/sdds-serv@0.167.0-canary.1542.11732695647.0 # or yarn add @salutejs/plasma-asdk@0.196.0-canary.1542.11732695647.0 yarn add @salutejs/plasma-b2c@1.438.0-canary.1542.11732695647.0 yarn add @salutejs/plasma-new-hope@0.186.0-canary.1542.11732695647.0 yarn add @salutejs/plasma-web@1.440.0-canary.1542.11732695647.0 yarn add @salutejs/sdds-cs@0.169.0-canary.1542.11732695647.0 yarn add @salutejs/sdds-dfa@0.166.0-canary.1542.11732695647.0 yarn add @salutejs/sdds-finportal@0.160.0-canary.1542.11732695647.0 yarn add @salutejs/sdds-insol@0.159.0-canary.1542.11732695647.0 yarn add @salutejs/sdds-serv@0.167.0-canary.1542.11732695647.0 ```
github-actions[bot] commented 1 week ago

Theme Builder app deployed!

https://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-1542/

github-actions[bot] commented 1 week ago

Documentation preview deployed!

website:https://plasma.sberdevices.ru/pr/pr-1542/ asdk storybook: https://plasma.sberdevices.ru/pr/pr-1542/asdk-storybook/ b2c storybook: https://plasma.sberdevices.ru/pr/pr-1542/b2c-storybook/ new-hope storybook: https://plasma.sberdevices.ru/pr/pr-1542/new-hope-storybook/ web storybook: https://plasma.sberdevices.ru/pr/pr-1542/web-storybook/ sdds-cs storybook: https://plasma.sberdevices.ru/pr/pr-1542/sdds-cs-storybook/ sdds-dfa storybook: https://plasma.sberdevices.ru/pr/pr-1542/sdds-dfa-storybook/ sdds-finportal storybook: https://plasma.sberdevices.ru/pr/pr-1542/sdds-finportal-storybook/ sdds-insol storybook: https://plasma.sberdevices.ru/pr/pr-1542/sdds-insol-storybook/ sdds-serv storybook: https://plasma.sberdevices.ru/pr/pr-1542/sdds-serv-storybook/ ui storybook: https://plasma.sberdevices.ru/pr/pr-1542/ui-storybook/