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