Добрый день! Скажите пожалуйста как можно улучшить этот
High Order Reducer?
const funcReducer = (type, initState, name, payload) =>
(state = initState, action = {}) => {
switch (action.type) {
case type[0]:
return {
[name]: {
...state[name],
data: payload ? action.payload[payload] : state[name].data,
},
};
case type[1]:
return {
[name]: {
...state[name],
isOpen: true,
data: !action.payload ? state[name].data : action.payload[payload],
},
};
case type[2]:
return {
[name]: {
...state[name],
isOpen: false,
error: '',
},
};
case type[3]:
return {
[name]: {
...state[name],
isLoading: true,
error: '',
},
};
default:
return state;
}
};
export default funcReducer ;
const types = [
'',
'OPEN_MODAL',
'CLOSE_MODAL',
'DELETE_REQUEST',
];
export const deleteItemReducer = funcReducer(types, initialState, 'delete', 'item');
Проблема в том что, например
data: !action.payload ? state[name].data : action.payload[payload]
, не везде нужна.
Буду благодарен за любую помощь!