Добро пожаловать, или посторонним вход воспрещён (часть 1)#12
Conversation
|
Ваш пулреквест опубликован. Посмотреть можно здесь |
|
Ваш пулреквест опубликован. Посмотреть можно здесь |
|
|
||
| useEffect(() => { | ||
| store.dispatch(checkAuthAction()); | ||
| store.dispatch(fetchOffersAction()); |
There was a problem hiding this comment.
А почему ты сюда перенес запрос офферов?
| async (_arg, {dispatch, extra: api}) => { | ||
| try { | ||
| await api.get(APIRoute.Login); | ||
| dispatch(addUserEmail(getUserEmail())); |
There was a problem hiding this comment.
Тут после авторизации email приходит в самом запросе, его не надо брать из localStorage
| dispatch(addUserEmail(getUserEmail())); | ||
| dispatch(requireAuthorization(AuthorizationStatus.Auth)); | ||
| } catch { | ||
| dispatch(requireAuthorization(AuthorizationStatus.NoAuth)); |
There was a problem hiding this comment.
Вот тут, если авторизация не успешная, лучше дополнительно почистить и email и token
|
|
||
| export type UserEmail = string; | ||
|
|
||
| export const getUserEmail = (): UserEmail => { |
There was a problem hiding this comment.
email хранится и в localStorage и в redux store, это два источника истины, нужно оставить что-то одно
|
|
||
| export const requireAuthorization = createAction<AuthorizationStatus>('user/requireAuthorization'); | ||
|
|
||
| export const addUserEmail = createAction<string>('user/saveUserEmail'); |
There was a problem hiding this comment.
Экшены лучше называть по названиям эндпоинтов, как здесь - saveUserEmail
|
|
||
| useEffect(() => { | ||
| store.dispatch(checkAuthAction()); | ||
| store.dispatch(fetchOffersAction()); |
There was a problem hiding this comment.
Кстати, у тебя есть useAppDispatch, используй его, вместо store.dispatch
|
Ваш пулреквест опубликован. Посмотреть можно здесь |
|
Ваш пулреквест опубликован. Посмотреть можно здесь |
🎓 Добро пожаловать, или посторонним вход воспрещён (часть 1)