Files
sgeUpdated/sge-frontend/src/redux/reducers/areas/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

70 lines
1.7 KiB
JavaScript

const initialState = {
areas: [],
areasWithCriteria: [],
areasWithPaginate: [],
};
const areasReducer = (state = initialState, action) => {
switch (action.type) {
case "GET_AREAS":
return {
...state,
areas: action.payload.areas,
};
case "GET_AREAS_WITH_PAGINATE":
return {
...state,
areasWithPaginate: action.payload.areasWithPaginate,
};
case "GET_AREAS_WITH_CRITERIA":
return {
...state,
areasWithCriteria: action.payload.getAreasWithCriteria,
};
case "ADD_AREA":
return {
...state,
areas: [...state.areas, action.payload.areas],
areasWithPaginate: {
...state.areasWithPaginate,
content: [...state.areasWithPaginate.content, action.payload.areas],
},
};
case "UPDATE_AREA":
return {
...state,
areas: state.areas.map((area) => {
if (area.id === action.payload.areas.id) {
return action.payload.areas;
}
return area;
}),
areasWithPaginate: {
...state.areasWithPaginate,
content: state.areasWithPaginate?.content.map((area) => {
if (area.id === action.payload.areas?.id) {
return action.payload.areas;
}
return area;
}),
},
};
case "DELETE_AREA":
return {
...state,
areas: state.areas.filter((area) => area.id != action.payload.id),
areasWithPaginate: {
...state.areasWithPaginate,
content: state.areasWithPaginate?.content.filter(
(area) => area.id != action.payload.id
),
},
};
}
return state;
};
export default areasReducer;