Skip to content

Add a reusable click-out directive

Anna Golosova requested to merge hw-7 into main

Что сделано

  • Добавлена общая директива ClickOutDirective.
  • Клики по документу отслеживаются через RxJS fromEvent.
  • Событие ttClickOut создано через outputFromObservable.
  • Для определения внешнего клика проверяется, находится ли event.target внутри элемента директивы.
  • Директива подключена к BaseModalComponent через hostDirectives.
  • Output ttClickOut открыт для использования в шаблонах модалок.
  • Убрано затемнение модального окна для проверки внешних кликов.
  • Добавлено закрытие по внешнему клику для:
    • модалки «Поделиться»;
    • модалки редактирования сообщества;
    • модалки подтверждения удаления.
  • Добавлена защита вложенной модалки подтверждения от закрытия родительской модалкой.
  • Директива подключена к SelectComponent через hostDirectives.
  • Добавлено закрытие дропдауна селекта по клику снаружи.

Как проверить

  1. Открыть модалку и кликнуть внутри неё — модалка остаётся открытой.
  2. Кликнуть вне модалки — модалка закрывается.
  3. Открыть редактирование сообщества, затем подтверждение удаления:
    • «Отмена» закрывает только подтверждение;
    • «Удалить» запускает удаление сообщества;
    • ошибка EmptyError в консоли не появляется.
  4. Открыть селект и кликнуть вне него — дропдаун закрывается.

Merge request reports

Loading