cspace-ui
Version:
CollectionSpace user interface for browsers
66 lines (65 loc) • 2.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.ConnectedPanel = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactRedux = require("react-redux");
var _reactIntl = require("react-intl");
var _cspaceLayout = require("cspace-layout");
var _withConfig = _interopRequireDefault(require("../../enhancers/withConfig"));
var _withRecordType = _interopRequireDefault(require("../../enhancers/withRecordType"));
var _prefs = require("../../actions/prefs");
var _reducers = require("../../reducers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getHeader = (key, messages) => {
const message = messages.panel[key];
if (!message) {
return null;
}
return (
/*#__PURE__*/
// eslint-disable-next-line react/jsx-props-no-spreading
_react.default.createElement("h3", null, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, message))
);
};
const mapStateToProps = (state, ownProps) => {
const {
config,
msgkey,
name,
recordType
} = ownProps;
let {
header
} = ownProps;
let collapsed = (0, _reducers.isPanelCollapsed)(state, recordType, name);
if (typeof collapsed === 'undefined') {
collapsed = ownProps.collapsed;
}
if (!header) {
const {
messages
} = config.recordTypes[recordType];
header = getHeader(msgkey || name, messages);
}
return {
collapsed,
header
};
};
const mapDispatchToProps = (dispatch, ownProps) => {
const {
recordType
} = ownProps;
return {
onToggleCollapsed: (name, collapsed) => {
dispatch((0, _prefs.collapsePanel)(recordType, name, collapsed));
}
};
};
const ConnectedPanel = exports.ConnectedPanel = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_cspaceLayout.Panel);
const EnhancedConnectedPanel = (0, _withRecordType.default)((0, _withConfig.default)(ConnectedPanel));
EnhancedConnectedPanel.propTypes = _cspaceLayout.Panel.propTypes;
EnhancedConnectedPanel.toJSON = () => 'Panel';
var _default = exports.default = EnhancedConnectedPanel;
;