forked from Abdulbari/sgeUpdated
git-subtree-dir: sge-frontend git-subtree-mainline:876c278ac4git-subtree-split:5fa787e054
70 lines
1.7 KiB
JavaScript
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;
|