dash-renderer
Version:
render dash components in react
35 lines (32 loc) • 1.18 kB
JavaScript
import {assoc, assocPath, merge} from 'ramda';
function createApiReducer(store) {
return function ApiReducer(state = {}, action) {
let newState = state;
if (action.type === store) {
const {payload} = action;
if (Array.isArray(payload.id)) {
newState = assocPath(payload.id, {
status: payload.status,
content: payload.content
}, state);
} else if (payload.id) {
newState = assoc(payload.id, {
status: payload.status,
content: payload.content
}, state);
} else {
newState = merge(
state,
{status: payload.status, content: payload.content}
);
}
}
return newState;
};
}
export const dependenciesRequest = createApiReducer('dependenciesRequest');
export const lastUpdateComponentRequest = createApiReducer(
'lastUpdateComponentRequest'
);
export const layoutRequest = createApiReducer('layoutRequest');
export const loginRequest = createApiReducer('loginRequest');