admin-on-rest-fr05t1k
Version:
A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI
52 lines (41 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPossibleReferences = undefined;
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _dataActions = require('../../actions/dataActions');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var initialState = {};
exports.default = function () {
var previousState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
var _ref = arguments[1];
var type = _ref.type,
payload = _ref.payload,
meta = _ref.meta;
switch (type) {
case _dataActions.CRUD_GET_MATCHING_SUCCESS:
return (0, _extends4.default)({}, previousState, (0, _defineProperty3.default)({}, meta.relatedTo, payload.data.map(function (record) {
return record.id;
})));
default:
return previousState;
}
};
var getPossibleReferences = exports.getPossibleReferences = function getPossibleReferences(state, referenceSource, reference, selectedId) {
if (!state.admin.references.possibleValues[referenceSource]) {
return typeof selectedId === 'undefined' || !state.admin[reference].data[selectedId] ? [] : [state.admin[reference].data[selectedId]];
}
var possibleValues = state.admin.references.possibleValues[referenceSource];
if (typeof selectedId !== 'undefined' && !possibleValues.includes(selectedId)) {
possibleValues.unshift(selectedId);
}
return possibleValues.map(function (id) {
return state.admin[reference].data[id];
}).filter(function (r) {
return typeof r !== 'undefined';
});
};