From 7e96816f94314dcdf071eeee6e74a95bcace329f Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 21 May 2022 09:49:26 -0700 Subject: Implement API error handling --- modern/src/store/errors.js | 21 +++++++++++++++++++++ modern/src/store/index.js | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 modern/src/store/errors.js (limited to 'modern/src/store') diff --git a/modern/src/store/errors.js b/modern/src/store/errors.js new file mode 100644 index 00000000..d1b86e5a --- /dev/null +++ b/modern/src/store/errors.js @@ -0,0 +1,21 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const { reducer, actions } = createSlice({ + name: 'errors', + initialState: { + errors: [], + }, + reducers: { + push(state, action) { + state.errors.push(action.payload); + }, + pop(state, _) { + if (state.errors.length) { + state.errors.shift(); + } + }, + }, +}); + +export { actions as errorsActions }; +export { reducer as errorsReducer }; diff --git a/modern/src/store/index.js b/modern/src/store/index.js index 6e2bb204..72867b76 100644 --- a/modern/src/store/index.js +++ b/modern/src/store/index.js @@ -1,5 +1,6 @@ import { combineReducers, configureStore } from '@reduxjs/toolkit'; +import { errorsReducer as errors } from './errors'; import { sessionReducer as session } from './session'; import { devicesReducer as devices } from './devices'; import { positionsReducer as positions } from './positions'; @@ -9,6 +10,7 @@ import { driversReducer as drivers } from './drivers'; import { maintenancesReducer as maintenances } from './maintenances'; const reducer = combineReducers({ + errors, session, devices, positions, @@ -18,6 +20,7 @@ const reducer = combineReducers({ maintenances, }); +export { errorsActions } from './errors'; export { sessionActions } from './session'; export { devicesActions } from './devices'; export { positionsActions } from './positions'; -- cgit v1.2.3