1
0
Fork 0
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:
Fedor Katurov 2019-11-02 18:45:58 +07:00
parent f7b8b56b53
commit 49bccb96c1
8 changed files with 68 additions and 37 deletions

View file

@ -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,
});

View file

@ -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 = {

View file

@ -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;