mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 12:56:41 +07:00
receiving window messages
This commit is contained in:
parent
f7b8b56b53
commit
49bccb96c1
8 changed files with 68 additions and 37 deletions
|
@ -2,17 +2,29 @@ import { AUTH_USER_ACTIONS } from '~/redux/auth/constants';
|
|||
import { IAuthState, IUser } from '~/redux/auth/types';
|
||||
|
||||
export const userSendLoginRequest = ({
|
||||
username, password
|
||||
username,
|
||||
password,
|
||||
}: {
|
||||
username: string; password: string;
|
||||
username: string;
|
||||
password: string;
|
||||
}) => ({ type: AUTH_USER_ACTIONS.SEND_LOGIN_REQUEST, username, password });
|
||||
|
||||
export const userSetLoginError = (error: IAuthState['login']['error']) => ({
|
||||
type: AUTH_USER_ACTIONS.SET_LOGIN_ERROR, error
|
||||
type: AUTH_USER_ACTIONS.SET_LOGIN_ERROR,
|
||||
error,
|
||||
});
|
||||
|
||||
export const authSetToken = (token: IAuthState['token']) => ({
|
||||
type: AUTH_USER_ACTIONS.SET_TOKEN, token,
|
||||
type: AUTH_USER_ACTIONS.SET_TOKEN,
|
||||
token,
|
||||
});
|
||||
|
||||
export const authSetUser = (profile: Partial<IUser>) => ({ type: AUTH_USER_ACTIONS.SET_USER, profile });
|
||||
export const gotPostMessage = (message: MessageEvent) => ({
|
||||
type: AUTH_USER_ACTIONS.GOT_POST_MESSAGE,
|
||||
message,
|
||||
});
|
||||
|
||||
export const authSetUser = (profile: Partial<IUser>) => ({
|
||||
type: AUTH_USER_ACTIONS.SET_USER,
|
||||
profile,
|
||||
});
|
||||
|
|
|
@ -5,6 +5,8 @@ export const AUTH_USER_ACTIONS = {
|
|||
SET_LOGIN_ERROR: 'SET_LOGIN_ERROR',
|
||||
SET_USER: 'SET_USER',
|
||||
SET_TOKEN: 'SET_TOKEN',
|
||||
|
||||
GOT_POST_MESSAGE: 'GOT_POST_MESSAGE',
|
||||
};
|
||||
|
||||
export const USER_ERRORS = {
|
||||
|
|
|
@ -5,6 +5,7 @@ import {
|
|||
userSetLoginError,
|
||||
authSetUser,
|
||||
userSendLoginRequest,
|
||||
gotPostMessage,
|
||||
} from '~/redux/auth/actions';
|
||||
import { apiUserLogin, apiAuthGetUser } from '~/redux/auth/api';
|
||||
import { modalSetShown } from '~/redux/modal/actions';
|
||||
|
@ -12,6 +13,7 @@ import { selectToken } from './selectors';
|
|||
import { IResultWithStatus } from '../types';
|
||||
import { IUser } from './types';
|
||||
import { REHYDRATE, RehydrateAction } from 'redux-persist';
|
||||
import path from 'ramda/es/path';
|
||||
|
||||
export function* reqWrapper(requestAction, props = {}): ReturnType<typeof requestAction> {
|
||||
const access = yield select(selectToken);
|
||||
|
@ -68,9 +70,16 @@ function* checkUserSaga({ key }: RehydrateAction) {
|
|||
yield put(authSetUser({ ...user, is_user: true }));
|
||||
}
|
||||
|
||||
function* gotPostMessageSaga({ message }: ReturnType<typeof gotPostMessage>) {
|
||||
if (path(['data', 'type'], message) !== 'oauth_login') return;
|
||||
|
||||
console.log({ message });
|
||||
}
|
||||
|
||||
function* authSaga() {
|
||||
yield takeLatest(REHYDRATE, checkUserSaga);
|
||||
yield takeLatest(AUTH_USER_ACTIONS.SEND_LOGIN_REQUEST, sendLoginRequestSaga);
|
||||
yield takeLatest(AUTH_USER_ACTIONS.GOT_POST_MESSAGE, gotPostMessageSaga);
|
||||
}
|
||||
|
||||
export default authSaga;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue