Update the user reducer from switch to map
This commit is contained in:
parent
99fbe22d6d
commit
255aa83453
@ -1,7 +1,7 @@
|
|||||||
import { OrderedMap, Map, fromJS } from 'immutable'
|
import { Map } from "immutable"
|
||||||
|
|
||||||
import jwtDecode from 'jwt-decode'
|
import jwtDecode from "jwt-decode"
|
||||||
import Cookies from 'universal-cookie'
|
import Cookies from "universal-cookie"
|
||||||
|
|
||||||
const defaultState = Map({
|
const defaultState = Map({
|
||||||
loading: false,
|
loading: false,
|
||||||
@ -12,42 +12,35 @@ const defaultState = Map({
|
|||||||
polochonUrl: "",
|
polochonUrl: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
export default function userStore(state = defaultState, action) {
|
const handlers = {
|
||||||
switch (action.type) {
|
"USER_LOGIN_PENDING": state => state.set("loading", true),
|
||||||
case 'USER_LOGIN_PENDING':
|
"USER_LOGIN_FULFILLED": (state, action) => {
|
||||||
return state.set('loading', true);
|
if (action.payload.response.status === "error") {
|
||||||
case 'USER_LOGIN_FULFILLED':
|
|
||||||
if (action.payload.response.status === "error") {
|
|
||||||
return logoutUser()
|
|
||||||
}
|
|
||||||
return updateFromToken(state, action.payload.response.data.token)
|
|
||||||
case 'USER_SET_TOKEN':
|
|
||||||
return updateFromToken(state, action.payload.token)
|
|
||||||
case 'USER_LOGOUT':
|
|
||||||
return logoutUser()
|
return logoutUser()
|
||||||
case 'GET_USER_FULFILLED':
|
}
|
||||||
return state.merge(Map({
|
return updateFromToken(state, action.payload.response.data.token)
|
||||||
polochonToken: action.payload.response.data.token,
|
},
|
||||||
polochonUrl: action.payload.response.data.url,
|
"USER_SET_TOKEN": (state, action) => updateFromToken(state, action.payload.token),
|
||||||
}))
|
"USER_LOGOUT": () => logoutUser(),
|
||||||
default:
|
"GET_USER_FULFILLED": (state, action) => state.merge(Map({
|
||||||
return state;
|
polochonToken: action.payload.response.data.token,
|
||||||
}
|
polochonUrl: action.payload.response.data.url,
|
||||||
|
})),
|
||||||
}
|
}
|
||||||
|
|
||||||
function logoutUser() {
|
function logoutUser() {
|
||||||
localStorage.removeItem('token');
|
localStorage.removeItem("token");
|
||||||
const cookies = new Cookies();
|
const cookies = new Cookies();
|
||||||
cookies.remove('token');
|
cookies.remove("token");
|
||||||
return defaultState
|
return defaultState
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateFromToken(state, token) {
|
function updateFromToken(state, token) {
|
||||||
const decodedToken = jwtDecode(token);
|
const decodedToken = jwtDecode(token);
|
||||||
localStorage.setItem('token', token);
|
localStorage.setItem("token", token);
|
||||||
|
|
||||||
const cookies = new Cookies();
|
const cookies = new Cookies();
|
||||||
cookies.set('token', token);
|
cookies.set("token", token);
|
||||||
|
|
||||||
return state.merge(Map({
|
return state.merge(Map({
|
||||||
userLoading: false,
|
userLoading: false,
|
||||||
@ -56,3 +49,6 @@ function updateFromToken(state, token) {
|
|||||||
username: decodedToken.username,
|
username: decodedToken.username,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default (state = defaultState, action) =>
|
||||||
|
handlers[action.type] ? handlers[action.type](state, action) : state;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user