@mindhive/documents
Version:
Standard document viewing, editing, listing etc
67 lines (52 loc) • 2.05 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _DiscardButton = require('./DiscardButton');
var _DiscardButton2 = _interopRequireDefault(_DiscardButton);
var _SaveButton = require('./SaveButton');
var _SaveButton2 = _interopRequireDefault(_SaveButton);
var _CloseButton = require('./CloseButton');
var _CloseButton2 = _interopRequireDefault(_CloseButton);
var _EditStyles = require('./EditStyles');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Buttons = function Buttons(_ref) {
var closeTouchTap = _ref.closeTouchTap,
lastFocusId = _ref.lastFocusId,
_ref$props = _ref.props,
isNew = _ref$props.isNew,
docType = _ref$props.docType,
extraButtons = _ref$props.extraButtons,
processing = _ref$props.processing,
pristine = _ref$props.pristine,
submitting = _ref$props.submitting,
valid = _ref$props.valid,
styles = _ref.styles;
var showClose = pristine && !isNew;
var showButtons = !pristine || isNew;
var buttons = [];
if (showButtons) {
buttons.push(_react2.default.createElement(_DiscardButton2.default, { onTouchTap: closeTouchTap }));
buttons.push(_react2.default.createElement(_SaveButton2.default, { docType: docType, disabled: pristine || !valid || submitting || processing }));
}
if (extraButtons) {
buttons.push(extraButtons);
}
if (showClose) {
buttons.push(_react2.default.createElement(_CloseButton2.default, { onTouchTap: closeTouchTap }));
}
var lastBtn = buttons[buttons.length - 1];
return _react2.default.createElement(
'div',
{ style: styles.buttons },
buttons.length && buttons.map(function (button, idx) {
return _react2.default.cloneElement(button, {
key: 'btn-' + idx + '-key',
id: button === lastBtn ? lastFocusId : undefined
});
})
);
};
exports.default = (0, _EditStyles.injectStylesSheet)(Buttons);