admin-on-rest-fr05t1k
Version:
A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI
32 lines (26 loc) • 1.06 kB
JavaScript
import { CRUD_GET_MANY_REFERENCE_SUCCESS } from '../../actions/dataActions';
const initialState = {};
export default (previousState = initialState, { type, payload, meta }) => {
switch (type) {
case CRUD_GET_MANY_REFERENCE_SUCCESS:
return {
...previousState,
[meta.relatedTo]: payload.data.map(record => record.id),
};
default:
return previousState;
}
};
export const getIds = (state, relatedTo) => state.admin.references.oneToMany[relatedTo];
export const getReferences = (state, reference, relatedTo) => {
const ids = getIds(state, relatedTo);
if (typeof ids === 'undefined') return undefined;
return ids
.map(id => state.admin[reference].data[id])
.filter(r => typeof r !== 'undefined')
.reduce((prev, record) => {
prev[record.id] = record; // eslint-disable-line no-param-reassign
return prev;
}, {});
};
export const nameRelatedTo = (reference, id, resource, target) => `${resource}_${reference}@${target}_${id}`;