mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 21:06:42 +07:00
moved reaction for oauth events to sagas
This commit is contained in:
parent
94cc515589
commit
441a0824cc
5 changed files with 38 additions and 17 deletions
|
@ -1,6 +1,6 @@
|
|||
import { AUTH_USER_ACTIONS } from '~/redux/auth/constants';
|
||||
import { IAuthState, ISocialProvider, IUser } from '~/redux/auth/types';
|
||||
import { IMessage } from '../types';
|
||||
import { IMessage, IOAuthEvent } from '../types';
|
||||
|
||||
export const userSendLoginRequest = ({
|
||||
username,
|
||||
|
@ -133,3 +133,8 @@ export const authLoginWithSocial = (token: string, username?: string, password?:
|
|||
username,
|
||||
password,
|
||||
});
|
||||
|
||||
export const authGotOauthEvent = (event: IOAuthEvent) => ({
|
||||
type: AUTH_USER_ACTIONS.GOT_OAUTH_EVENT,
|
||||
event,
|
||||
});
|
||||
|
|
|
@ -31,6 +31,7 @@ export const AUTH_USER_ACTIONS = {
|
|||
SET_SOCIALS: 'SET_SOCIALS',
|
||||
ATTACH_SOCIAL: 'ATTACH_SOCIAL',
|
||||
LOGIN_WITH_SOCIAL: 'LOGIN_WITH_SOCIAL',
|
||||
GOT_OAUTH_EVENT: 'GOT_OAUTH_EVENT',
|
||||
};
|
||||
|
||||
export const USER_ERRORS = {
|
||||
|
|
|
@ -4,6 +4,7 @@ import {
|
|||
authAttachSocial,
|
||||
authDropSocial,
|
||||
authGetMessages,
|
||||
authGotOauthEvent,
|
||||
authLoadProfile,
|
||||
authLoggedIn,
|
||||
authLoginWithSocial,
|
||||
|
@ -473,6 +474,18 @@ function* loginWithSocial({ token }: ReturnType<typeof authLoginWithSocial>) {
|
|||
}
|
||||
}
|
||||
|
||||
function* gotOauthEvent({ event }: ReturnType<typeof authGotOauthEvent>) {
|
||||
if (!event?.data?.type) return;
|
||||
|
||||
switch (event?.data?.type) {
|
||||
case 'oauth_processed':
|
||||
return put(authLoginWithSocial(event?.data?.payload?.token));
|
||||
case 'oauth_error':
|
||||
return put(userSetLoginError(event?.data?.payload?.error));
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
function* authSaga() {
|
||||
yield takeEvery(REHYDRATE, checkUserSaga);
|
||||
yield takeLatest([REHYDRATE, AUTH_USER_ACTIONS.LOGGED_IN], startPollingSaga);
|
||||
|
@ -493,6 +506,7 @@ function* authSaga() {
|
|||
yield takeLatest(AUTH_USER_ACTIONS.DROP_SOCIAL, dropSocial);
|
||||
yield takeLatest(AUTH_USER_ACTIONS.ATTACH_SOCIAL, attachSocial);
|
||||
yield takeLatest(AUTH_USER_ACTIONS.LOGIN_WITH_SOCIAL, loginWithSocial);
|
||||
yield takeEvery(AUTH_USER_ACTIONS.GOT_OAUTH_EVENT, gotOauthEvent);
|
||||
}
|
||||
|
||||
export default authSaga;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue