apeman-react-dialog
Version:
apeman react package for dialog component.
133 lines (106 loc) • 9.04 kB
JavaScript
/**
* Yes/No dialog.
* @class ApYesnoDialog
*/
'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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _apemanReactTouchable = require('apeman-react-touchable');
var _ap_dialog = require('./ap_dialog');
var _ap_dialog2 = _interopRequireDefault(_ap_dialog);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/** @lends ApYesnoDialog */
var ApYesnoDialog = function (_Component) {
_inherits(ApYesnoDialog, _Component);
function ApYesnoDialog() {
_classCallCheck(this, ApYesnoDialog);
return _possibleConstructorReturn(this, Object.getPrototypeOf(ApYesnoDialog).apply(this, arguments));
}
_createClass(ApYesnoDialog, [{
key: 'render',
value: function render() {
var s = this;
var props = s.props;
if (!props.present) {
return null;
}
return _react2.default.createElement(
_ap_dialog2.default,
_extends({ className: (0, _classnames2.default)('ap-yesno-dialog', props.className),
style: Object.assign({}, props.style)
}, props),
_react2.default.createElement(
'div',
null,
props.children
),
_react2.default.createElement(
'div',
{ className: 'ap-yesno-dialog-control' },
_react2.default.createElement(ApYesnoDialog.Button, { text: props.noText, onTap: props.onNo }),
_react2.default.createElement(ApYesnoDialog.Button, { text: props.yesText, onTap: props.onYes })
)
);
}
}]);
return ApYesnoDialog;
}(_react.Component);
Object.assign(ApYesnoDialog, {
// --------------------
// Specs
// --------------------
propTypes: {
present: _react.PropTypes.bool.isRequired,
/** Handler for tapping YES */
onYes: _react.PropTypes.func,
/** Handler for tapping NO */
onNo: _react.PropTypes.func,
/** Dialog title */
title: _react.PropTypes.string,
/** Text of YES button */
yesText: _react.PropTypes.string,
/** Text of NO button */
noText: _react.PropTypes.string
},
defaultProps: {
present: false,
onYes: null,
onNo: null,
title: null,
yesText: 'Yes',
noText: 'No'
},
// --------------------
// Sub components
// --------------------
Button: function Button(_ref) {
var text = _ref.text;
var onTap = _ref.onTap;
var s = this;
return _react2.default.createElement(
'a',
{ className: 'ap-yesno-dialog-button' },
_react2.default.createElement(
_apemanReactTouchable.ApTouchable,
{ onTap: onTap },
_react2.default.createElement(
'span',
{ className: 'ap-yesno-dialog-button-text' },
text
)
)
);
}
});
exports.default = ApYesnoDialog;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3llc25vX2RpYWxvZy5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0E7Ozs7Ozs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBO0lBQ00sYTs7Ozs7Ozs7Ozs7NkJBQ007QUFDUixVQUFNLElBQUksSUFBVjtBQURRLFVBRUYsS0FGRSxHQUVRLENBRlIsQ0FFRixLQUZFOztBQUdSLFVBQUksQ0FBQyxNQUFNLE9BQVgsRUFBb0I7QUFDbEIsZUFBTyxJQUFQO0FBQ0Q7QUFDRCxhQUNFO0FBQUE7QUFBQSxtQkFBVSxXQUFZLDBCQUFXLGlCQUFYLEVBQThCLE1BQU0sU0FBcEMsQ0FBdEI7QUFDVSxpQkFBUSxPQUFPLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLE1BQU0sS0FBeEI7QUFEbEIsV0FFZSxLQUZmO0FBSUU7QUFBQTtBQUFBO0FBQU8sZ0JBQU07QUFBYixTQUpGO0FBS0U7QUFBQTtBQUFBLFlBQUssV0FBVSx5QkFBZjtBQUNFLHdDQUFDLGFBQUQsQ0FBZSxNQUFmLElBQXNCLE1BQU8sTUFBTSxNQUFuQyxFQUE0QyxPQUFRLE1BQU0sSUFBMUQsR0FERjtBQUVFLHdDQUFDLGFBQUQsQ0FBZSxNQUFmLElBQXNCLE1BQU8sTUFBTSxPQUFuQyxFQUE2QyxPQUFRLE1BQU0sS0FBM0Q7QUFGRjtBQUxGLE9BREY7QUFZRDs7Ozs7O0FBR0gsT0FBTyxNQUFQLENBQWMsYUFBZCxFQUE2QjtBQUMzQjtBQUNBO0FBQ0E7O0FBRUEsYUFBVztBQUNULGFBQVMsaUJBQU0sSUFBTixDQUFXLFVBRFg7QUFFVDtBQUNBLFdBQU8saUJBQU0sSUFISjtBQUlUO0FBQ0EsVUFBTSxpQkFBTSxJQUxIO0FBTVQ7QUFDQSxXQUFPLGlCQUFNLE1BUEo7QUFRVDtBQUNBLGFBQVMsaUJBQU0sTUFUTjtBQVVUO0FBQ0EsWUFBUSxpQkFBTTtBQVhMLEdBTGdCOztBQW1CM0IsZ0JBQWM7QUFDWixhQUFTLEtBREc7QUFFWixXQUFPLElBRks7QUFHWixVQUFNLElBSE07QUFJWixXQUFPLElBSks7QUFLWixhQUFTLEtBTEc7QUFNWixZQUFRO0FBTkksR0FuQmE7O0FBNEIzQjtBQUNBO0FBQ0E7QUFDQSxRQS9CMkIsd0JBK0JGO0FBQUEsUUFBZixJQUFlLFFBQWYsSUFBZTtBQUFBLFFBQVQsS0FBUyxRQUFULEtBQVM7O0FBQ3ZCLFFBQU0sSUFBSSxJQUFWO0FBQ0EsV0FDRTtBQUFBO0FBQUEsUUFBRyxXQUFVLHdCQUFiO0FBQ0U7QUFBQTtBQUFBLFVBQWEsT0FBUSxLQUFyQjtBQUNFO0FBQUE7QUFBQSxZQUFNLFdBQVUsNkJBQWhCO0FBQWdEO0FBQWhEO0FBREY7QUFERixLQURGO0FBT0Q7QUF4QzBCLENBQTdCOztrQkEyQ2UsYSIsImZpbGUiOiJhcF95ZXNub19kaWFsb2cuanN4Iiwic291cmNlUm9vdCI6ImxpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWWVzL05vIGRpYWxvZy5cbiAqIEBjbGFzcyBBcFllc25vRGlhbG9nXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgUHJvcFR5cGVzIGFzIHR5cGVzfSBmcm9tICdyZWFjdCdcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG5pbXBvcnQge0FwVG91Y2hhYmxlfSBmcm9tICdhcGVtYW4tcmVhY3QtdG91Y2hhYmxlJ1xuaW1wb3J0IEFwRGlhbG9nIGZyb20gJy4vYXBfZGlhbG9nJ1xuXG4vKiogQGxlbmRzIEFwWWVzbm9EaWFsb2cgKi9cbmNsYXNzIEFwWWVzbm9EaWFsb2cgZXh0ZW5kcyBDb21wb25lbnQge1xuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBpZiAoIXByb3BzLnByZXNlbnQpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8QXBEaWFsb2cgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAteWVzbm8tZGlhbG9nJywgcHJvcHMuY2xhc3NOYW1lKSB9XG4gICAgICAgICAgICAgICAgc3R5bGU9eyBPYmplY3QuYXNzaWduKHt9LCBwcm9wcy5zdHlsZSkgfVxuICAgICAgICAgICAgICAgIHsgLi4ucHJvcHMgfVxuICAgICAgPlxuICAgICAgICA8ZGl2PnsgcHJvcHMuY2hpbGRyZW4gfTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwLXllc25vLWRpYWxvZy1jb250cm9sXCI+XG4gICAgICAgICAgPEFwWWVzbm9EaWFsb2cuQnV0dG9uIHRleHQ9eyBwcm9wcy5ub1RleHQgfSBvblRhcD17IHByb3BzLm9uTm8gfS8+XG4gICAgICAgICAgPEFwWWVzbm9EaWFsb2cuQnV0dG9uIHRleHQ9eyBwcm9wcy55ZXNUZXh0IH0gb25UYXA9eyBwcm9wcy5vblllcyB9Lz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0FwRGlhbG9nPlxuICAgIClcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKEFwWWVzbm9EaWFsb2csIHtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm9wVHlwZXM6IHtcbiAgICBwcmVzZW50OiB0eXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgLyoqIEhhbmRsZXIgZm9yIHRhcHBpbmcgWUVTICovXG4gICAgb25ZZXM6IHR5cGVzLmZ1bmMsXG4gICAgLyoqIEhhbmRsZXIgZm9yIHRhcHBpbmcgTk8gKi9cbiAgICBvbk5vOiB0eXBlcy5mdW5jLFxuICAgIC8qKiBEaWFsb2cgdGl0bGUgKi9cbiAgICB0aXRsZTogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBUZXh0IG9mIFlFUyBidXR0b24gKi9cbiAgICB5ZXNUZXh0OiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIFRleHQgb2YgTk8gYnV0dG9uICovXG4gICAgbm9UZXh0OiB0eXBlcy5zdHJpbmdcbiAgfSxcblxuICBkZWZhdWx0UHJvcHM6IHtcbiAgICBwcmVzZW50OiBmYWxzZSxcbiAgICBvblllczogbnVsbCxcbiAgICBvbk5vOiBudWxsLFxuICAgIHRpdGxlOiBudWxsLFxuICAgIHllc1RleHQ6ICdZZXMnLFxuICAgIG5vVGV4dDogJ05vJ1xuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFN1YiBjb21wb25lbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEJ1dHRvbiAoeyB0ZXh0LCBvblRhcCB9KSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICByZXR1cm4gKFxuICAgICAgPGEgY2xhc3NOYW1lPVwiYXAteWVzbm8tZGlhbG9nLWJ1dHRvblwiPlxuICAgICAgICA8QXBUb3VjaGFibGUgb25UYXA9eyBvblRhcCB9PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImFwLXllc25vLWRpYWxvZy1idXR0b24tdGV4dFwiPnsgdGV4dCB9PC9zcGFuPlxuICAgICAgICA8L0FwVG91Y2hhYmxlPlxuICAgICAgPC9hPlxuICAgIClcbiAgfVxufSlcblxuZXhwb3J0IGRlZmF1bHQgQXBZZXNub0RpYWxvZ1xuIl19