Skip to content

Implement community creation with NgRx

Anna Golosova requested to merge hw-3 into hw-1

Что сделано

Создание сообщества

  • Добавлено модальное окно с реактивной формой создания сообщества.
  • В форме используются кастомные контролы:
    • текстовое поле для названия;
    • select для выбора темы;
    • stack-input для тегов;
  • Для обязательного поля названия добавлены:
    • индикатор *;
    • проверка required;
    • сообщение об ошибке после взаимодействия с полем или отправки формы.

NgRx и работа с API

  • Добавлены actions для создания сообщества, успешного ответа, ошибки и очистки предыдущей ошибки.
  • Реализован эффект отправки POST /community/.
  • Добавлены состояния:
    • creating;
    • createError.
  • Во время выполнения запроса кнопка сохранения блокируется.
  • При ошибке модальное окно остаётся открытым, введённые данные сохраняются и выводится сообщение.
  • После успешного создания модальное окно закрывается через отдельный UI-effect.
  • После создания заново загружается первая страница списка с текущими фильтрами, чтобы актуализировать total, pages и состав списка.
  • При загрузке первой страницы предыдущее содержимое списка и параметры пагинации сбрасываются.

Подписка на сообщества

  • Для запросов подписки и отписки используется mergeMap, чтобы параллельные действия не отменяли друг друга.
  • Кнопка подписки скрывается для сообщества, администратором которого является текущий пользователь.

Проверка

  • Проверено открытие и закрытие модального окна.
  • Проверено успешное создание сообщества с ответом 201.
  • Проверено закрытие модального окна после успешного создания.
  • Проверено обновление списка после создания.
  • Проверена обработка ошибки сервера:
    • модальное окно остаётся открытым;
    • кнопка снова становится доступной;
    • отображается сообщение об ошибке;

Merge request reports

Loading