1 | /**
|
2 | * Yes/No dialog.
|
3 | * @constructor ApYesnoDialog
|
4 | */
|
5 |
|
6 | ;
|
7 |
|
8 | 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; };
|
9 |
|
10 | var _react = require('react');
|
11 |
|
12 | var _react2 = _interopRequireDefault(_react);
|
13 |
|
14 | var _classnames = require('classnames');
|
15 |
|
16 | var _classnames2 = _interopRequireDefault(_classnames);
|
17 |
|
18 | var _apemanReactTouchable = require('apeman-react-touchable');
|
19 |
|
20 | var _ap_dialog = require('./ap_dialog');
|
21 |
|
22 | var _ap_dialog2 = _interopRequireDefault(_ap_dialog);
|
23 |
|
24 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
25 |
|
26 | /** @lends ApYesnoDialog */
|
27 | var ApYesnoDialog = _react2.default.createClass({
|
28 | displayName: 'ApYesnoDialog',
|
29 |
|
30 | // --------------------
|
31 | // Specs
|
32 | // --------------------
|
33 |
|
34 | propTypes: {
|
35 | present: _react.PropTypes.bool.isRequired,
|
36 | /** Handler for tapping YES */
|
37 | onYes: _react.PropTypes.func,
|
38 | /** Handler for tapping NO */
|
39 | onNo: _react.PropTypes.func,
|
40 | /** Dialog title */
|
41 | title: _react.PropTypes.string,
|
42 | /** Text of YES button */
|
43 | yesText: _react.PropTypes.string,
|
44 | /** Text of NO button */
|
45 | noText: _react.PropTypes.string
|
46 | },
|
47 |
|
48 | mixins: [],
|
49 |
|
50 | statics: {},
|
51 |
|
52 | getInitialState: function getInitialState() {
|
53 | return {};
|
54 | },
|
55 | getDefaultProps: function getDefaultProps() {
|
56 | return {
|
57 | present: false,
|
58 | onYes: null,
|
59 | onNo: null,
|
60 | title: null,
|
61 | yesText: 'Yes',
|
62 | noText: 'No'
|
63 | };
|
64 | },
|
65 | render: function render() {
|
66 | var s = this;
|
67 | var props = s.props;
|
68 |
|
69 | if (!props.present) {
|
70 | return null;
|
71 | }
|
72 | return _react2.default.createElement(
|
73 | _ap_dialog2.default,
|
74 | _extends({ className: (0, _classnames2.default)('ap-yesno-dialog', props.className),
|
75 | style: Object.assign({}, props.style)
|
76 | }, props),
|
77 | _react2.default.createElement(
|
78 | 'div',
|
79 | null,
|
80 | props.children
|
81 | ),
|
82 | _react2.default.createElement(
|
83 | 'div',
|
84 | { className: 'ap-yesno-dialog-control' },
|
85 | s._renderYesnoButton(props.noText, s.handleNo),
|
86 | s._renderYesnoButton(props.yesText, s.handleYes)
|
87 | )
|
88 | );
|
89 | },
|
90 |
|
91 | // ------------------
|
92 | // Helper
|
93 | // ------------------
|
94 |
|
95 | handleYes: function handleYes(e) {
|
96 | var s = this;
|
97 | var props = s.props;
|
98 |
|
99 | if (props.onYes) {
|
100 | props.onYes(e);
|
101 | }
|
102 | },
|
103 | handleNo: function handleNo(e) {
|
104 | var s = this;
|
105 | var props = s.props;
|
106 |
|
107 | if (props.onNo) {
|
108 | props.onNo(e);
|
109 | }
|
110 | },
|
111 |
|
112 | // ------------------
|
113 | // Private
|
114 | // ------------------
|
115 | _renderYesnoButton: function _renderYesnoButton(text, callback) {
|
116 | var s = this;
|
117 | return _react2.default.createElement(
|
118 | 'a',
|
119 | { className: 'ap-yesno-dialog-button' },
|
120 | _react2.default.createElement(
|
121 | _apemanReactTouchable.ApTouchable,
|
122 | { onTap: callback },
|
123 | _react2.default.createElement(
|
124 | 'span',
|
125 | { className: 'ap-yesno-dialog-button-text' },
|
126 | text
|
127 | )
|
128 | )
|
129 | );
|
130 | }
|
131 | });
|
132 |
|
133 | module.exports = ApYesnoDialog;
|
134 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3llc25vX2RpYWxvZy5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7OztBQUdBLElBQUksZ0JBQWdCLGdCQUFNLFdBQU4sQ0FBa0I7Ozs7Ozs7QUFNcEMsYUFBVztBQUNULGFBQVMsaUJBQU0sSUFBTixDQUFXLFVBQVg7O0FBRVQsV0FBTyxpQkFBTSxJQUFOOztBQUVQLFVBQU0saUJBQU0sSUFBTjs7QUFFTixXQUFPLGlCQUFNLE1BQU47O0FBRVAsYUFBUyxpQkFBTSxNQUFOOztBQUVULFlBQVEsaUJBQU0sTUFBTjtHQVhWOztBQWNBLFVBQVEsRUFBUjs7QUFFQSxXQUFTLEVBQVQ7O0FBRUEsOENBQW1CO0FBQ2pCLFdBQU8sRUFBUCxDQURpQjtHQXhCaUI7QUE0QnBDLDhDQUFtQjtBQUNqQixXQUFPO0FBQ0wsZUFBUyxLQUFUO0FBQ0EsYUFBTyxJQUFQO0FBQ0EsWUFBTSxJQUFOO0FBQ0EsYUFBTyxJQUFQO0FBQ0EsZUFBUyxLQUFUO0FBQ0EsY0FBUSxJQUFSO0tBTkYsQ0FEaUI7R0E1QmlCO0FBdUNwQyw0QkFBVTtBQUNSLFFBQU0sSUFBSSxJQUFKLENBREU7UUFFRixRQUFVLEVBQVYsTUFGRTs7QUFHUixRQUFJLENBQUMsTUFBTSxPQUFOLEVBQWU7QUFDbEIsYUFBTyxJQUFQLENBRGtCO0tBQXBCO0FBR0EsV0FDRTs7aUJBQVUsV0FBWSwwQkFBVyxpQkFBWCxFQUE4QixNQUFNLFNBQU4sQ0FBMUM7QUFDQSxlQUFRLE9BQU8sTUFBUCxDQUFjLEVBQWQsRUFBa0IsTUFBTSxLQUFOLENBQTFCO1NBQ0gsTUFGUDtNQUlFOzs7UUFBTyxNQUFNLFFBQU47T0FKVDtNQUtFOztVQUFLLFdBQVUseUJBQVYsRUFBTDtRQUNJLEVBQUUsa0JBQUYsQ0FBcUIsTUFBTSxNQUFOLEVBQWMsRUFBRSxRQUFGLENBRHZDO1FBRUksRUFBRSxrQkFBRixDQUFxQixNQUFNLE9BQU4sRUFBZSxFQUFFLFNBQUYsQ0FGeEM7T0FMRjtLQURGLENBTlE7R0F2QzBCOzs7Ozs7QUErRHBDLGdDQUFVLEdBQUc7QUFDTCxZQUFJLElBQUosQ0FESztRQUVSLFFBQVMsRUFBVCxNQUZROztBQUdYLFFBQUksTUFBTSxLQUFOLEVBQWE7QUFDZixZQUFNLEtBQU4sQ0FBWSxDQUFaLEVBRGU7S0FBakI7R0FsRWtDO0FBdUVwQyw4QkFBUyxHQUFHO0FBQ0osWUFBSSxJQUFKLENBREk7UUFFUCxRQUFTLEVBQVQsTUFGTzs7QUFHVixRQUFJLE1BQU0sSUFBTixFQUFZO0FBQ2QsWUFBTSxJQUFOLENBQVcsQ0FBWCxFQURjO0tBQWhCO0dBMUVrQzs7Ozs7QUFrRnBDLGtEQUFtQixNQUFNLFVBQVU7QUFDakMsUUFBTSxJQUFJLElBQUosQ0FEMkI7QUFFakMsV0FDRTs7UUFBRyxXQUFVLHdCQUFWLEVBQUg7TUFDRTs7VUFBYSxPQUFRLFFBQVIsRUFBYjtRQUNFOztZQUFNLFdBQVUsNkJBQVYsRUFBTjtVQUFnRCxJQUFoRDtTQURGO09BREY7S0FERixDQUZpQztHQWxGQztDQUFsQixDQUFoQjs7QUErRkosT0FBTyxPQUFQLEdBQWlCLGFBQWpCIiwiZmlsZSI6ImFwX3llc25vX2RpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvb2t1bmlzaGluaXNoaS9Qcm9qZWN0cy9hcGVtYW4tcHJvamVjdHMvYXBlbWFuLXJlYWN0LWRpYWxvZy9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFllcy9ObyBkaWFsb2cuXG4gKiBAY29uc3RydWN0b3IgQXBZZXNub0RpYWxvZ1xuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMgYXMgdHlwZXN9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCB7QXBUb3VjaGFibGV9IGZyb20gJ2FwZW1hbi1yZWFjdC10b3VjaGFibGUnXG5pbXBvcnQgQXBEaWFsb2cgZnJvbSAnLi9hcF9kaWFsb2cnXG5cbi8qKiBAbGVuZHMgQXBZZXNub0RpYWxvZyAqL1xubGV0IEFwWWVzbm9EaWFsb2cgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm9wVHlwZXM6IHtcbiAgICBwcmVzZW50OiB0eXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgLyoqIEhhbmRsZXIgZm9yIHRhcHBpbmcgWUVTICovXG4gICAgb25ZZXM6IHR5cGVzLmZ1bmMsXG4gICAgLyoqIEhhbmRsZXIgZm9yIHRhcHBpbmcgTk8gKi9cbiAgICBvbk5vOiB0eXBlcy5mdW5jLFxuICAgIC8qKiBEaWFsb2cgdGl0bGUgKi9cbiAgICB0aXRsZTogdHlwZXMuc3RyaW5nLFxuICAgIC8qKiBUZXh0IG9mIFlFUyBidXR0b24gKi9cbiAgICB5ZXNUZXh0OiB0eXBlcy5zdHJpbmcsXG4gICAgLyoqIFRleHQgb2YgTk8gYnV0dG9uICovXG4gICAgbm9UZXh0OiB0eXBlcy5zdHJpbmdcbiAgfSxcblxuICBtaXhpbnM6IFtdLFxuXG4gIHN0YXRpY3M6IHt9LFxuXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlc2VudDogZmFsc2UsXG4gICAgICBvblllczogbnVsbCxcbiAgICAgIG9uTm86IG51bGwsXG4gICAgICB0aXRsZTogbnVsbCxcbiAgICAgIHllc1RleHQ6ICdZZXMnLFxuICAgICAgbm9UZXh0OiAnTm8nXG4gICAgfVxuICB9LFxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuICAgIGlmICghcHJvcHMucHJlc2VudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8QXBEaWFsb2cgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAteWVzbm8tZGlhbG9nJywgcHJvcHMuY2xhc3NOYW1lKSB9XG4gICAgICAgICAgICAgICAgc3R5bGU9eyBPYmplY3QuYXNzaWduKHt9LCBwcm9wcy5zdHlsZSkgfVxuICAgICAgICB7IC4uLnByb3BzIH1cbiAgICAgID5cbiAgICAgICAgPGRpdj57IHByb3BzLmNoaWxkcmVuIH08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcC15ZXNuby1kaWFsb2ctY29udHJvbFwiPlxuICAgICAgICAgIHsgcy5fcmVuZGVyWWVzbm9CdXR0b24ocHJvcHMubm9UZXh0LCBzLmhhbmRsZU5vKSB9XG4gICAgICAgICAgeyBzLl9yZW5kZXJZZXNub0J1dHRvbihwcm9wcy55ZXNUZXh0LCBzLmhhbmRsZVllcykgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQXBEaWFsb2c+XG4gICAgKVxuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBIZWxwZXJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgaGFuZGxlWWVzKGUpIHtcbiAgICBjb25zdCBzID0gdGhpcyxcbiAgICAgIHtwcm9wc30gPSBzO1xuICAgIGlmIChwcm9wcy5vblllcykge1xuICAgICAgcHJvcHMub25ZZXMoZSlcbiAgICB9XG4gIH0sXG5cbiAgaGFuZGxlTm8oZSkge1xuICAgIGNvbnN0IHMgPSB0aGlzLFxuICAgICAge3Byb3BzfSA9IHM7XG4gICAgaWYgKHByb3BzLm9uTm8pIHtcbiAgICAgIHByb3BzLm9uTm8oZSlcbiAgICB9XG4gIH0sXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFByaXZhdGVcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIF9yZW5kZXJZZXNub0J1dHRvbih0ZXh0LCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgcmV0dXJuIChcbiAgICAgIDxhIGNsYXNzTmFtZT1cImFwLXllc25vLWRpYWxvZy1idXR0b25cIj5cbiAgICAgICAgPEFwVG91Y2hhYmxlIG9uVGFwPXsgY2FsbGJhY2sgfT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhcC15ZXNuby1kaWFsb2ctYnV0dG9uLXRleHRcIj57IHRleHQgfTwvc3Bhbj5cbiAgICAgICAgPC9BcFRvdWNoYWJsZT5cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cblxufSlcblxubW9kdWxlLmV4cG9ydHMgPSBBcFllc25vRGlhbG9nOyJdfQ== |
\ | No newline at end of file |