forked from Abdulbari/sgeUpdated
git-subtree-dir: sge-frontend git-subtree-mainline:876c278ac4git-subtree-split:5fa787e054
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
const initialState = {
|
|
currentSettings: null,
|
|
|
|
loading: false,
|
|
error: null,
|
|
success: false,
|
|
}
|
|
|
|
const mailSettingsReducer = (state = initialState, action) => {
|
|
switch (action.type) {
|
|
case "GET_MAIL_SETTINGS_PENDING":
|
|
return {
|
|
...state,
|
|
loading: true,
|
|
error: null,
|
|
}
|
|
case "GET_MAIL_SETTINGS_FULFILLED":
|
|
return {
|
|
...state,
|
|
loading: false,
|
|
// Even if payload is null, we still want to set loading to false
|
|
currentSettings: action.payload || null,
|
|
}
|
|
case "GET_MAIL_SETTINGS_REJECTED":
|
|
return {
|
|
...state,
|
|
loading: false,
|
|
error: action.payload || "Failed to fetch mail settings",
|
|
}
|
|
case "UPDATE_MAIL_SETTINGS_PENDING":
|
|
return {
|
|
...state,
|
|
loading: true,
|
|
error: null,
|
|
success: false,
|
|
}
|
|
case "UPDATE_MAIL_SETTINGS_FULFILLED":
|
|
return {
|
|
...state,
|
|
loading: false,
|
|
currentSettings: action.payload,
|
|
success: true,
|
|
}
|
|
case "UPDATE_MAIL_SETTINGS_REJECTED":
|
|
return {
|
|
...state,
|
|
loading: false,
|
|
error: action.payload || "Failed to update mail settings",
|
|
success: false,
|
|
}
|
|
case "CLEAR_MAIL_ERROR":
|
|
return {
|
|
...state,
|
|
error: null,
|
|
}
|
|
case "CLEAR_MAIL_SUCCESS":
|
|
return {
|
|
...state,
|
|
success: false,
|
|
}
|
|
default:
|
|
return state
|
|
}
|
|
}
|
|
|
|
export default mailSettingsReducer
|