Skip to content

fix(web): AuthUI.initTabSupport не ломает чужие Bootstrap tabs#181

Open
Ibochkarev wants to merge 1 commit intobetafrom
fix/180-auth-ui-init-tab-support
Open

fix(web): AuthUI.initTabSupport не ломает чужие Bootstrap tabs#181
Ibochkarev wants to merge 1 commit intobetafrom
fix/180-auth-ui-init-tab-support

Conversation

@Ibochkarev
Copy link
Copy Markdown
Member

Описание

Исправление issue #180: fallback AuthUI.initTabSupport() при отсутствии Bootstrap JS больше не трогает все вкладки на странице. Обработчики вешаются только на [data-bs-toggle="tab"] внутри общего предка форм #ms3-login-form / #ms3-register-form; сброс active / aria-selected выполняется в tabButton.closest('.nav') и среди прямых дочерних .tab-pane родителя целевой панели (:scope > .tab-pane). Добавлены _findAuthTabScope() и флаг _tabSupportInitialized, чтобы не дублировать слушатели при повторном init().

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #180

Как это было протестировано?

Проверена логика по коду и соответствие предложенному в issue сужению селекторов. Рекомендуется вручную: страница с формами MS3 (вкладки вход/регистрация) и второй независимый блок Bootstrap tabs на той же странице — без подключённого Bootstrap JS клик по чужим вкладкам не должен гасить состояние другой группы.

  • Ручное тестирование (сценарий выше — для мержа желательно подтвердить на стенде)
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: ветка PR
  • MODX: —
  • PHP: —

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en) — не требуется (изменения только в JS)
  • PHPStan проходит без новых ошибок — не затрагивается
  • ESLint проходит без ошибок (для JS/Vue изменений) — в AuthUI.js остаются прежние предупреждения: глобальный bootstrap и класс AuthUI (как до правки)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

Если в шаблоне формы авторизации переключатели вкладок и обе формы не имеют общего DOM-предка с [data-bs-toggle="tab"], fallback не активируется — в таком случае нужен полноценный Bootstrap JS. Для типичной разметки «nav + tab-content» поведение совпадает с ожиданиями issue.

@Ibochkarev Ibochkarev changed the title fix(web): AuthUI.initTabSupport не ломает чужие Bootstrap tabs (#180) fix(web): AuthUI.initTabSupport не ломает чужие Bootstrap tabs Apr 2, 2026
@Ibochkarev Ibochkarev requested a review from biz87 April 3, 2026 06:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AuthUI.initTabSupport() breaks all Bootstrap tabs on page

1 participant