Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(Menu, InternalMenu): unify components #3234

Merged
merged 37 commits into from
Aug 11, 2023

Conversation

Funkicide
Copy link
Member

@Funkicide Funkicide commented Aug 7, 2023

Проблема

На данный момент у нас есть два очень похожих компонента: Menu и InternalMenu. Эти компоненты процентов на 70% делят одну и ту же логику и почти вся новая логика, которая попадает в один компонент, тут же добавляется в другой. Но часть логики компонентов всё-таки различается, что может вызывать проблемы в самым неожиданных местах и заставляет нас иметь два похожих, но немного (или много) различающихся варианта логики.

Решение

  • Сравнил компоненты друг с другом.
  • Выписал и проанализировал различия.
  • Решил оставить Menu, т.к. он использовался в большем количестве родительских компонентов и имел более свежие изменения.
  • Перенес из InternalMenu недостающую логику и стили.
  • Доработал стили в компонентах PopupMenu, DropdownMenu, Kebab, TooltipMenu через переменные, чтобы проходили скриншотные тесты.

Ссылки

IF-1310 Menu, InternalMenu: унифицировать компоненты

Чек-лист перед запросом ревью

  1. Добавлены тесты на все изменения
    ⬜ unit-тесты для логики
    ⬜ скриншоты для верстки и кросс-браузерности
    ✅ нерелевантно

  2. Добавлена (обновлена) документация
    ⬜ styleguidist для пропов и примеров использования компонентов
    ✅ jsdoc для утилит и хелперов
    ⬜ комментарии для неочевидных мест в коде
    ⬜ прочие инструкции (README.md, contributing.md и др.)
    ✅ нерелевантно

  3. Изменения корректно типизированы
    ✅ без использования any (см. PR 2856)
    ⬜ нерелевантно

  4. Прочее
    ✅ все тесты и линтеры на CI проходят
    ⬜ в коде нет лишних изменений
    ✅ заголовок PR кратко и доступно отражает суть изменений (он попадет в changelog)

this allows to control paddings separately.
this stores internalMenuPaddingY value in case internalMenu is deleted
This ensures compatibility with Menu.
This ensures compatibility with Menu.
This ensures compatibility with Menu.
This ensures compatibility with Menu.
…bkontur/retail-ui into IF-1310-Menu-InternalMenu-unification
@Funkicide Funkicide marked this pull request as ready for review August 10, 2023 05:05
@Funkicide Funkicide requested a review from zhzz August 10, 2023 08:50
packages/react-ui/internal/Menu/Menu.tsx Outdated Show resolved Hide resolved
@Funkicide Funkicide requested a review from zhzz August 11, 2023 04:08
@zhzz zhzz merged commit b19ac8f into next Aug 11, 2023
6 checks passed
@zhzz zhzz deleted the IF-1310-Menu-InternalMenu-unification branch August 11, 2023 06:24
zhzz pushed a commit that referenced this pull request Aug 31, 2023
zhzz pushed a commit that referenced this pull request Sep 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants