12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- //import {promiseReducer} from "./promiseReducer";
- //import {authReducer} from "./authReducer";
- import {createStore, combineReducers, applyMiddleware} from "redux";
- import thunk from "redux-thunk";
- const jwtDecode = token => {
- try {
- let arrToken = token.split('.')
- let base64Token = atob(arrToken[1])
- return JSON.parse(base64Token)
- }
- catch (e) {
- console.log('Лажа, Бро ' + e);
- }
- }
- function authReducer(state, { type, token }) {
- if (!state) {
- if (localStorage.authToken) {
- type = 'AUTH_LOGIN'
- token = localStorage.authToken
- } else state = {}
- }
- if (type === 'AUTH_LOGIN') {
- localStorage.setItem('authToken', token)
- let payload = jwtDecode(token)
- if (typeof payload === 'object') {
- return {
- ...state,
- token,
- payload
- }
- } else return state
- }
- if (type === 'AUTH_LOGOUT') {
- localStorage.removeItem('authToken')
- return {}
- }
- return state
- }
- function promiseReducer(state = {}, { type, status, payload, error, name }) {
- if (type === 'PROMISE') {
- return {
- ...state,
- [name]: { status, payload, error }
- }
- }
- return state;
- }
- export const store = createStore(
- combineReducers({promise: promiseReducer, auth: authReducer}),
- applyMiddleware(thunk)
- );
|