This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
resolver/app/reducers/globalReducer.jsx
2017-07-23 10:53:40 +04:30

128 lines
2.6 KiB
JavaScript

// - Import action types
import * as types from 'actionTypes'
/**
* Default state
*/
var defaultState = {
progress: {
percent: 0,
visible: false
},
loadingStatus: true,
defaultLoadDataStatus: false,
messageOpen: false,
message: '',
sidebarMainStyle: {},
sidebarStyle: { width: "210px" },
sidebarClass: "",
sidebarOpen: (window.innerWidth > 750) ? true : false,
windowWidth: 0,
windowHeight: 0,
overSidebarStatus: false,
onResizeOpenSidebar: false,
sidebarAuto: false,
headerTitle: '',
editProfileOpen: false,
showTopLoading: false,
topLoadingQueue: 0,
temp: {}
}
/**
* Global reducer
* @param {object} state
* @param {object} action
*/
export const globalReducer = (state = defaultState, action) => {
const { payload } = action
switch (action.type) {
case types.PROGRESS_CHANGE:
return {
...state,
progress: {
...state.progress,
percent: payload.percent,
visible: payload.visible
}
}
case types.DEFAULT_DATA_DISABLE:
return {
...state,
defaultLoadDataStatus: false
}
case types.DEFAULT_DATA_ENABLE:
return {
...state,
defaultLoadDataStatus: true
}
case types.SHOW_ERROR_MESSAGE_GLOBAL:
return {
...state,
message: action.payload,
messageOpen: true
}
case types.SHOW_NORMAL_MESSAGE_GLOBAL:
return {
...state,
message: action.payload,
messageOpen: true
}
case types.SHOW_SEND_REQUEST_MESSAGE_GLOBAL:
return {
...state,
message: "Request has been sent",
messageOpen: true
}
case types.SHOW_REQUEST_SUCCESS_MESSAGE_GLOBAL:
return {
...state,
message: "Your request has processed successfuly",
messageOpen: true
}
case types.HIDE_MESSAGE_GLOBAL:
return {
...state,
message: '',
messageOpen: false,
messageColor: ''
}
case types.SET_HEADER_TITLE:
return {
...state,
headerTitle: action.payload
}
case types.HIDE_TOP_LOADING:
const queue = state.topLoadingQueue > 0 ? (state.topLoadingQueue - 1) : 0
return {
...state,
topLoadingQueue: queue,
showTopLoading: (queue > 0 ? true : false)
}
case types.SHOW_TOP_LOADING:
return {
...state,
topLoadingQueue: (state.topLoadingQueue + 1),
showTopLoading: true
}
case types.TEMP:
return {
...state,
temp: {
...state.temp,
...payload
}
}
default:
return state
}
}