UNPKG

apeman-react-dialog

Version:
220 lines (189 loc) 15.3 kB
/** * Dialog to confirm. * @class ApConfirmDialog */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _apemanReactCheckbox = require('apeman-react-checkbox'); var _apemanReactButton = require('apeman-react-button'); var _ap_dialog = require('./ap_dialog'); var _ap_dialog2 = _interopRequireDefault(_ap_dialog); var _uuid = require('uuid'); var _uuid2 = _interopRequireDefault(_uuid); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** lends ApConfirmDialog */ var ApConfirmDialog = _react2.default.createClass({ displayName: 'ApConfirmDialog', // -------------------- // Specs // -------------------- propTypes: { present: _react.PropTypes.bool.isRequired, /** Handler for submit event */ onSubmit: _react.PropTypes.func, /** Handler for cancel event */ onCancel: _react.PropTypes.func, /** Dialog title */ title: _react.PropTypes.string, /** Dialog message */ message: _react.PropTypes.string, /** Id of checkbox */ checkboxId: _react.PropTypes.string, /** Name of checkbox */ checkboxName: _react.PropTypes.string, /** Label text of checkbox */ checkboxText: _react.PropTypes.string, /** Errot text when not checked */ errorText: _react.PropTypes.string, /** Submit button text */ submitText: _react.PropTypes.string }, mixins: [], statics: {}, getInitialState: function getInitialState() { return { checked: false, errored: false }; }, getDefaultProps: function getDefaultProps() { var id = _uuid2.default.v4().replace(/\-/g, ''); return { onSubmit: null, onCancel: null, checkboxId: 'ap-confirm-dialog-checkbox-' + id, checkboxName: 'ap-confirm-check-' + id, checkboxText: null, submitText: 'submit', errorText: 'Needs check before submit.', message: 'Once destroyed, there is no going back. Please be certain.' }; }, render: function render() { var s = this; var state = s.state; var props = s.props; if (!props.present) { return null; } return _react2.default.createElement( _ap_dialog2.default, _extends({ className: (0, _classnames2.default)('ap-confirm-dialog', props.className), style: Object.assign({}, props.style), onClose: s.handleCancel }, props), _react2.default.createElement( 'p', { className: 'ap-confirm-dialog-message' }, props.message ), _react2.default.createElement( 'div', null, props.children ), _react2.default.createElement( 'div', { className: 'ap-confirm-dialog-control' }, s.renderError(state.errored), s.renderCheckbox(state.checked), s.renderSubmitButton(state.checked) ) ); }, toggleCheckbox: function toggleCheckbox() { var s = this; var state = s.state; s.setState({ checked: !state.checked, errored: false }); }, handleSubmit: function handleSubmit(e) { var s = this; var state = s.state; var props = s.props; if (!state.checked) { s.setState({ errored: true }); return; } s.setState({ errored: false }); if (props.onSubmit) { props.onSubmit(e); } }, handleCancel: function handleCancel(e) { var s = this; var props = s.props; s.setState({ errored: false }); if (props.onCancel) { props.onCancel(e); } }, // ------------------ // Private // ------------------ renderError: function renderError(errored) { var s = this; var props = s.props; if (!errored) { return null; } return _react2.default.createElement( 'div', { className: 'ap-confirm-dialog-err' }, _react2.default.createElement( 'span', null, props.errorText ) ); }, renderCheckbox: function renderCheckbox(checked) { var s = this; var props = s.props; return _react2.default.createElement( 'div', null, _react2.default.createElement(_apemanReactCheckbox.ApCheckbox, { className: 'ap-confirm-dialog-checkbox', checked: checked, name: props.checkboxName, id: props.checkboxId, title: props.checkboxText, onChange: s.toggleCheckbox, value: 'YES' }) ); }, renderSubmitButton: function renderSubmitButton(checked) { var s = this; var props = s.props; return _react2.default.createElement( _apemanReactButton.ApButton, { onTap: s.handleSubmit, disabled: false, primary: true, className: (0, _classnames2.default)('ap-confirm-dialog-button', { 'ap-confirm-dialog-button-disabled': !checked }) }, _react2.default.createElement( 'span', { className: 'ap-confirm-dialog-button-text' }, props.submitText ) ); } }); exports.default = ApConfirmDialog; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX2NvbmZpcm1fZGlhbG9nLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7QUFLQTs7Ozs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUE7QUFDQSxJQUFNLGtCQUFrQixnQkFBTSxXQUFOLENBQWtCO0FBQUE7OztBQUV4QztBQUNBO0FBQ0E7O0FBRUEsYUFBVztBQUNULGFBQVMsaUJBQU0sSUFBTixDQUFXLFVBRFg7QUFFVDtBQUNBLGNBQVUsaUJBQU0sSUFIUDtBQUlUO0FBQ0EsY0FBVSxpQkFBTSxJQUxQO0FBTVQ7QUFDQSxXQUFPLGlCQUFNLE1BUEo7QUFRVDtBQUNBLGFBQVMsaUJBQU0sTUFUTjtBQVVUO0FBQ0EsZ0JBQVksaUJBQU0sTUFYVDtBQVlUO0FBQ0Esa0JBQWMsaUJBQU0sTUFiWDtBQWNUO0FBQ0Esa0JBQWMsaUJBQU0sTUFmWDtBQWdCVDtBQUNBLGVBQVcsaUJBQU0sTUFqQlI7QUFrQlQ7QUFDQSxnQkFBWSxpQkFBTTtBQW5CVCxHQU42Qjs7QUE0QnhDLFVBQVEsRUE1QmdDOztBQStCeEMsV0FBUyxFQS9CK0I7O0FBaUN4QyxpQkFqQ3dDLDZCQWlDckI7QUFDakIsV0FBTztBQUNMLGVBQVMsS0FESjtBQUVMLGVBQVM7QUFGSixLQUFQO0FBSUQsR0F0Q3VDO0FBd0N4QyxpQkF4Q3dDLDZCQXdDckI7QUFDakIsUUFBSSxLQUFLLGVBQUssRUFBTCxHQUFVLE9BQVYsQ0FBa0IsS0FBbEIsRUFBeUIsRUFBekIsQ0FBVDtBQUNBLFdBQU87QUFDTCxnQkFBVSxJQURMO0FBRUwsZ0JBQVUsSUFGTDtBQUdMLGtEQUEwQyxFQUhyQztBQUlMLDBDQUFrQyxFQUo3QjtBQUtMLG9CQUFjLElBTFQ7QUFNTCxrQkFBWSxRQU5QO0FBT0wsaUJBQVcsNEJBUE47QUFRTCxlQUFTO0FBUkosS0FBUDtBQVVELEdBcER1QztBQXNEeEMsUUF0RHdDLG9CQXNEOUI7QUFDUixRQUFNLElBQUksSUFB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LENBRlcsQ0FFckIsS0FGcUI7O0FBRzNCLFdBQ0U7QUFBQTtBQUFBLFFBQVUsT0FBUSxFQUFFLFlBQXBCO0FBQ1Usa0JBQVcsS0FEckI7QUFFVSxpQkFBVSxJQUZwQjtBQUdVLG1CQUFZLDBCQUFXLDBCQUFYLEVBQXVDO0FBQ2pELCtDQUFxQyxDQUFDO0FBRFcsU0FBdkMsQ0FIdEI7QUFNRTtBQUFBO0FBQUEsVUFBTSxXQUFVLCtCQUFoQjtBQUFrRCxjQUFNO0FBQXhEO0FBTkYsS0FERjtBQVVEO0FBL0p1QyxDQUFsQixDQUF4Qjs7a0JBbUtlLGUiLCJmaWxlIjoiYXBfY29uZmlybV9kaWFsb2cuanN4Iiwic291cmNlUm9vdCI6ImxpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGlhbG9nIHRvIGNvbmZpcm0uXG4gKiBAY2xhc3MgQXBDb25maXJtRGlhbG9nXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBSZWFjdCwge1Byb3BUeXBlcyBhcyB0eXBlc30gZnJvbSAncmVhY3QnXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuXG5pbXBvcnQge0FwQ2hlY2tib3h9IGZyb20gJ2FwZW1hbi1yZWFjdC1jaGVja2JveCdcbmltcG9ydCB7QXBCdXR0b259IGZyb20gJ2FwZW1hbi1yZWFjdC1idXR0b24nXG5pbXBvcnQgQXBEaWFsb2cgZnJvbSAnLi9hcF9kaWFsb2cnXG5pbXBvcnQgdXVpZCBmcm9tICd1dWlkJ1xuXG4vKiogbGVuZHMgQXBDb25maXJtRGlhbG9nICovXG5jb25zdCBBcENvbmZpcm1EaWFsb2cgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm9wVHlwZXM6IHtcbiAgICBwcmVzZW50OiB0eXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgLyoqIEhhbmRsZXIgZm9yIHN1Ym1pdCBldmVudCAqL1xuICAgIG9uU3VibWl0OiB0eXBlcy5mdW5jLFxuICAgIC8qKiBIYW5kbGVyIGZvciBjYW5jZWwgZXZlbnQgKi9cbiAgICBvbkNhbmNlbDogdHlwZXMuZnVuYyxcbiAgICAvKiogRGlhbG9nIHRpdGxlICovXG4gICAgdGl0bGU6IHR5cGVzLnN0cmluZyxcbiAgICAvKiogRGlhbG9nIG1lc3NhZ2UgKi9cbiAgICBtZXNzYWdlOiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIElkIG9mIGNoZWNrYm94ICovXG4gICAgY2hlY2tib3hJZDogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBOYW1lIG9mIGNoZWNrYm94ICovXG4gICAgY2hlY2tib3hOYW1lOiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIExhYmVsIHRleHQgb2YgY2hlY2tib3ggKi9cbiAgICBjaGVja2JveFRleHQ6IHR5cGVzLnN0cmluZyxcbiAgICAvKiogRXJyb3QgdGV4dCB3aGVuIG5vdCBjaGVja2VkICovXG4gICAgZXJyb3JUZXh0OiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIFN1Ym1pdCBidXR0b24gdGV4dCAqL1xuICAgIHN1Ym1pdFRleHQ6IHR5cGVzLnN0cmluZ1xuICB9LFxuXG4gIG1peGluczogW1xuICBdLFxuXG4gIHN0YXRpY3M6IHt9LFxuXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgZXJyb3JlZDogZmFsc2VcbiAgICB9XG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzICgpIHtcbiAgICBsZXQgaWQgPSB1dWlkLnY0KCkucmVwbGFjZSgvXFwtL2csICcnKVxuICAgIHJldHVybiB7XG4gICAgICBvblN1Ym1pdDogbnVsbCxcbiAgICAgIG9uQ2FuY2VsOiBudWxsLFxuICAgICAgY2hlY2tib3hJZDogYGFwLWNvbmZpcm0tZGlhbG9nLWNoZWNrYm94LSR7aWR9YCxcbiAgICAgIGNoZWNrYm94TmFtZTogYGFwLWNvbmZpcm0tY2hlY2stJHtpZH1gLFxuICAgICAgY2hlY2tib3hUZXh0OiBudWxsLFxuICAgICAgc3VibWl0VGV4dDogJ3N1Ym1pdCcsXG4gICAgICBlcnJvclRleHQ6ICdOZWVkcyBjaGVjayBiZWZvcmUgc3VibWl0LicsXG4gICAgICBtZXNzYWdlOiAnT25jZSBkZXN0cm95ZWQsIHRoZXJlIGlzIG5vIGdvaW5nIGJhY2suIFBsZWFzZSBiZSBjZXJ0YWluLidcbiAgICB9XG4gIH0sXG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHN0YXRlLCBwcm9wcyB9ID0gc1xuICAgIGlmICghcHJvcHMucHJlc2VudCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxBcERpYWxvZyBjbGFzc05hbWU9eyBjbGFzc25hbWVzKCdhcC1jb25maXJtLWRpYWxvZycsIHByb3BzLmNsYXNzTmFtZSkgfVxuICAgICAgICAgICAgICAgIHN0eWxlPXsgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMuc3R5bGUpIH1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXsgcy5oYW5kbGVDYW5jZWwgfVxuICAgICAgICAgICAgICAgIHsgLi4ucHJvcHMgfVxuICAgICAgPlxuICAgICAgICA8cCBjbGFzc05hbWU9XCJhcC1jb25maXJtLWRpYWxvZy1tZXNzYWdlXCI+XG4gICAgICAgICAgeyBwcm9wcy5tZXNzYWdlIH1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2PnsgcHJvcHMuY2hpbGRyZW4gfTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwLWNvbmZpcm0tZGlhbG9nLWNvbnRyb2xcIj5cbiAgICAgICAgICB7IHMucmVuZGVyRXJyb3Ioc3RhdGUuZXJyb3JlZCkgfVxuICAgICAgICAgIHsgcy5yZW5kZXJDaGVja2JveChzdGF0ZS5jaGVja2VkKSB9XG4gICAgICAgICAgeyBzLnJlbmRlclN1Ym1pdEJ1dHRvbihzdGF0ZS5jaGVja2VkKSB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9BcERpYWxvZz5cbiAgICApXG4gIH0sXG5cbiAgdG9nZ2xlQ2hlY2tib3ggKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHN0YXRlID0gcy5zdGF0ZVxuICAgIHMuc2V0U3RhdGUoe1xuICAgICAgY2hlY2tlZDogIXN0YXRlLmNoZWNrZWQsXG4gICAgICBlcnJvcmVkOiBmYWxzZVxuICAgIH0pXG4gIH0sXG5cbiAgaGFuZGxlU3VibWl0IChlKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBzdGF0ZSwgcHJvcHMgfSA9IHNcbiAgICBpZiAoIXN0YXRlLmNoZWNrZWQpIHtcbiAgICAgIHMuc2V0U3RhdGUoe1xuICAgICAgICBlcnJvcmVkOiB0cnVlXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHMuc2V0U3RhdGUoe1xuICAgICAgZXJyb3JlZDogZmFsc2VcbiAgICB9KVxuICAgIGlmIChwcm9wcy5vblN1Ym1pdCkge1xuICAgICAgcHJvcHMub25TdWJtaXQoZSlcbiAgICB9XG4gIH0sXG5cbiAgaGFuZGxlQ2FuY2VsIChlKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuICAgIHMuc2V0U3RhdGUoeyBlcnJvcmVkOiBmYWxzZSB9KVxuICAgIGlmIChwcm9wcy5vbkNhbmNlbCkge1xuICAgICAgcHJvcHMub25DYW5jZWwoZSlcbiAgICB9XG4gIH0sXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFByaXZhdGVcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHJlbmRlckVycm9yKGVycm9yZWQpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgaWYgKCFlcnJvcmVkKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcC1jb25maXJtLWRpYWxvZy1lcnJcIj5cbiAgICAgICAgPHNwYW4+eyBwcm9wcy5lcnJvclRleHQgfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfSxcbiAgcmVuZGVyQ2hlY2tib3ggKGNoZWNrZWQpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxBcENoZWNrYm94IGNsYXNzTmFtZT1cImFwLWNvbmZpcm0tZGlhbG9nLWNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17IGNoZWNrZWQgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXsgcHJvcHMuY2hlY2tib3hOYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgaWQ9eyBwcm9wcy5jaGVja2JveElkIH1cbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9eyBwcm9wcy5jaGVja2JveFRleHQgfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IHMudG9nZ2xlQ2hlY2tib3ggfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIllFU1wiXG5cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfSxcbiAgcmVuZGVyU3VibWl0QnV0dG9uIChjaGVja2VkKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuICAgIHJldHVybiAoXG4gICAgICA8QXBCdXR0b24gb25UYXA9eyBzLmhhbmRsZVN1Ym1pdCB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyBmYWxzZSB9XG4gICAgICAgICAgICAgICAgcHJpbWFyeT17IHRydWUgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoJ2FwLWNvbmZpcm0tZGlhbG9nLWJ1dHRvbicsIHtcbiAgICAgICAgICAgICAgICAgICdhcC1jb25maXJtLWRpYWxvZy1idXR0b24tZGlzYWJsZWQnOiAhY2hlY2tlZFxuICAgICAgICAgICAgICAgIH0pIH0+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFwLWNvbmZpcm0tZGlhbG9nLWJ1dHRvbi10ZXh0XCI+eyBwcm9wcy5zdWJtaXRUZXh0IH08L3NwYW4+XG4gICAgICA8L0FwQnV0dG9uPlxuICAgIClcbiAgfVxuXG59KVxuXG5leHBvcnQgZGVmYXVsdCBBcENvbmZpcm1EaWFsb2dcbiJdfQ==