Files
sgeUpdated/sge-frontend/src/redux/reducers/mailSettings/index.js
Khaled Elagamy 85f1847070 Add 'sge-frontend/' from commit '5fa787e054b25ac53edc7ff0275ea7960a709401'
git-subtree-dir: sge-frontend
git-subtree-mainline: 876c278ac4
git-subtree-split: 5fa787e054
2025-08-04 00:27:23 +03:00

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