R
А) при работе с ngrx/store где лучше открывать и закрывать spinner-dialog: 1) в компоненте перед диспатчем акшина? 2) в эффекте на tap(OPEN_SPINNER) перед switchmap(API_CALL) и закрывать уже внутри API_CALL.then(CLOSE_SPINNER).catch(CLOSE_SPINNER)?
Б) делаю логин.
1) click on submit button
2) generate payload from form data-> dispatch action (LOAD_REQUEST) with payload
3) на LOAD_REQUEST реагирует Effect который шлет запрос на сервер
4) Effect возвращает LOAD_REQUEST_FAILURE & LOAD_REQUEST_SUCCESS actions, соответственно с токеном и ошибкой. и меняет состояние стора по статусу LOADING/ERROR
5) логин форма показывает спиннер диалог пока идет действие...
вопрос... где делать переход на основной раздел? в effect'e или в логин-компоненте и всегда слушать LOADING статус и в нем проверять есть ли токен в сторе или нет? или есть другой/лучший flow для данного кейса?
Диспатчик екшен REQUEST_ANYTHING
его ловит ефект и редьюсер
в редьюсере на REQUEST_ANYTHING
переключаемя состояние куска сторы в isLoading: true, errors: null,
потом когда приезжает REQUEST_SUCCESS
мы делаем isLoading: false,
соответсвенно на изЛоадин висит селектор который мы юзаем для спинера
