cspace-ui
Version:
CollectionSpace user interface for browsers
90 lines (87 loc) • 4.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _reactRedux = require("react-redux");
var _get = _interopRequireDefault(require("lodash/get"));
var _account = require("../../actions/account");
var _authority = require("../../actions/authority");
var _notification = require("../../actions/notification");
var _prefs = require("../../actions/prefs");
var _record = require("../../actions/record");
var _relation = require("../../actions/relation");
var _reducers = require("../../reducers");
var _RecordEditor = _interopRequireDefault(require("../../components/record/RecordEditor"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const mapStateToProps = (state, ownProps) => {
const {
csid,
perms,
recordType,
vocabulary
} = ownProps;
// If perms are supplied in ownProps, use them instead of getting perms from state.
// This allows parent components to supply filtered perms.
return {
data: (0, _reducers.getRecordData)(state, csid),
formName: (0, _reducers.getForm)(state, recordType),
isModified: (0, _reducers.isRecordModified)(state, csid),
isReadPending: (0, _reducers.isRecordReadPending)(state, csid),
isSavePending: (0, _reducers.isRecordSavePending)(state, csid),
isSidebarOpen: (0, _reducers.isRecordSidebarOpen)(state),
openModalName: (0, _reducers.getOpenModalName)(state),
perms: perms || (0, _reducers.getUserPerms)(state),
roleNames: (0, _reducers.getUserRoleNames)(state),
subrecordData: (0, _reducers.getSubrecordData)(state, csid),
validationErrors: (0, _reducers.getRecordValidationErrors)(state, csid),
vocabularyWorkflowState: (0, _reducers.getAuthorityVocabWorkflowState)(state, recordType, vocabulary)
};
};
const mapDispatchToProps = (dispatch, ownProps) => {
const {
config,
csid,
relatedSubjectCsid,
recordType,
vocabulary
} = ownProps;
const recordTypeConfig = (0, _get.default)(config, ['recordTypes', recordType]);
const vocabularyConfig = vocabulary ? (0, _get.default)(recordTypeConfig, ['vocabularies', vocabulary]) : undefined;
return {
closeModal: result => {
dispatch((0, _notification.closeModal)(result));
},
openModal: modalName => {
dispatch((0, _notification.openModal)(modalName));
},
createNewRecord: cloneCsid => {
dispatch((0, _record.createNewRecord)(config, recordTypeConfig, vocabularyConfig, cloneCsid));
},
deleteRecord: () => dispatch((0, _record.deleteRecord)(config, recordTypeConfig, vocabularyConfig, csid, relatedSubjectCsid)),
readRecord: () => dispatch((0, _record.readRecord)(config, recordTypeConfig, vocabularyConfig, csid)),
revert: () => {
dispatch((0, _record.revertRecord)(recordTypeConfig, csid));
},
save: onRecordCreated => dispatch((0, _record.saveRecord)(config, recordTypeConfig, vocabularyConfig, csid, undefined, undefined, relatedSubjectCsid, onRecordCreated)).catch(() => {}),
saveWithTransition: (transitionName, onRecordCreated) => dispatch((0, _record.saveRecordWithTransition)(config, recordTypeConfig, vocabularyConfig, csid, undefined, undefined, relatedSubjectCsid, transitionName, onRecordCreated)).catch(() => {}),
setForm: formName => {
dispatch((0, _prefs.setForm)(recordType, formName));
dispatch((0, _record.validateRecordData)(recordTypeConfig, csid));
},
transitionRecord: transitionName => dispatch((0, _record.transitionRecord)(config, recordTypeConfig, vocabularyConfig, csid, transitionName, relatedSubjectCsid)),
removeNotification: notificationID => {
dispatch((0, _notification.removeNotification)(notificationID));
},
removeValidationNotification: () => {
dispatch((0, _notification.removeValidationNotification)());
},
validateRecordData: () => {
dispatch((0, _record.validateRecordData)(recordTypeConfig, csid));
},
checkForRelations: predicate => dispatch((0, _relation.checkForRelations)(csid, predicate)),
checkForUses: () => dispatch((0, _authority.checkForUses)(config, recordType, vocabulary, csid)),
checkForRoleUses: () => dispatch((0, _account.checkForRoleUses)(csid))
};
};
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_RecordEditor.default);
;