aboutsummaryrefslogtreecommitdiff
path: root/src/reducers
diff options
context:
space:
mode:
Diffstat (limited to 'src/reducers')
-rw-r--r--src/reducers/error.reducer.js18
-rw-r--r--src/reducers/loading.reducer.js12
-rw-r--r--src/reducers/login.reducer.js21
-rw-r--r--src/reducers/root.reducer.js6
4 files changed, 57 insertions, 0 deletions
diff --git a/src/reducers/error.reducer.js b/src/reducers/error.reducer.js
new file mode 100644
index 0000000..83d1128
--- /dev/null
+++ b/src/reducers/error.reducer.js
@@ -0,0 +1,18 @@
+export default function ErrorReducer(state = {}, action) {
+ const { type, error } = action;
+ const matches = /(.*)_(REQUEST|FAILED|ERROR)/.exec(
+ type
+ );
+ if (!matches) return state;
+ const [, requestName, requestState] = matches;
+ return {
+ errorMessage:
+ requestState === "FAILED" || requestState === "ERROR"
+ ? error
+ ? error
+ : ""
+ : "",
+ [requestName]: requestState === "FAILED" || requestState === "ERROR" ? true: false
+ };
+ }
+ \ No newline at end of file
diff --git a/src/reducers/loading.reducer.js b/src/reducers/loading.reducer.js
new file mode 100644
index 0000000..5ff7651
--- /dev/null
+++ b/src/reducers/loading.reducer.js
@@ -0,0 +1,12 @@
+export default function LoadingReducer(state = {}, action) {
+ console.log("Reducer",action)
+ const { type } = action;
+ const matches = /(.*)_(REQUEST|SUCCESS|FAILED|ERROR|SUBMIT|CANCEL)/.exec(type);
+ if (!matches) return state;
+ const [, requestName, requestState] = matches;
+ return {
+ ...state,
+ [requestName]: (requestState === 'REQUEST' || requestState === 'SUBMIT')
+ };
+
+} \ No newline at end of file
diff --git a/src/reducers/login.reducer.js b/src/reducers/login.reducer.js
new file mode 100644
index 0000000..3229e35
--- /dev/null
+++ b/src/reducers/login.reducer.js
@@ -0,0 +1,21 @@
+import { LOGIN_REQUEST, LOGIN_SUCCESS } from "../utils/constants";
+import Storage from "../services/storage.service";
+
+
+let initialState = {
+ token: ""
+};
+
+export const LoginReducer = (state=initialState, action)=>{
+ switch (action.type) {
+ case LOGIN_REQUEST: return state;
+ case LOGIN_SUCCESS:
+
+ Storage.set('token', action.payload.token);
+ return {
+ ...state,
+ token: action.payload.token
+ };
+ default: return state;
+ }
+} \ No newline at end of file
diff --git a/src/reducers/root.reducer.js b/src/reducers/root.reducer.js
index de1a3b8..c5796ea 100644
--- a/src/reducers/root.reducer.js
+++ b/src/reducers/root.reducer.js
@@ -1,9 +1,15 @@
import { combineReducers } from "redux";
import { connectRouter } from "connected-react-router";
+import LoadingReducer from "./loading.reducer";
+import ErrorReducer from "./error.reducer";
+import { LoginReducer } from "./login.reducer";
const createRootReducer = history =>
combineReducers({
router: connectRouter(history),
+ loading: LoadingReducer,
+ error: ErrorReducer,
+ login: LoginReducer
});
export default createRootReducer;