apeman-react-dialog
Version:
apeman react package for dialog component.
91 lines (76 loc) • 6.47 kB
JavaScript
/**
* @function withDialog
*/
;
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 _breact = require('breact');
var _asobj = require('asobj');
var _ap_yesno_dialog = require('./ap_yesno_dialog');
var _ap_yesno_dialog2 = _interopRequireDefault(_ap_yesno_dialog);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function withDialog(Component) {
return (0, _breact.wrap)(Component, {
getInitialState: function getInitialState() {
return {
dialog: null
};
},
render: function render() {
var s = this;
var props = s.props;
var state = s.state;
var dialog = state.dialog;
var componentProps = (0, _asobj.clone)(props, {
without: []
});
return _react2.default.createElement(Component, _extends({}, componentProps, {
askYesNoWithDialog: s.askYesNo,
dialog: dialog
}));
},
// --------------------
// Custom
// --------------------
askYesNo: function askYesNo(_ref) {
var title = _ref.title;
var text = _ref.text;
var yesText = _ref.yesText;
var noText = _ref.noText;
var closeIcon = _ref.closeIcon;
var s = this;
return new Promise(function (resolve, reject) {
var dialog = _react2.default.createElement(
_ap_yesno_dialog2.default,
_extends({ title: title, yesText: yesText, noText: noText, closeIcon: closeIcon }, {
present: true,
onYes: function onYes() {
return resolve(true);
},
onNo: function onNo() {
return resolve(false);
},
onClose: function onClose() {
return resolve();
}
}),
text,
' '
);
s.setState({ dialog: dialog });
}).then(function (answer) {
s.setState({ dialog: null });
return answer;
}).catch(function (err) {
s.setState({ dialog: null });
return Promise.reject(err);
});
}
});
}
exports.default = withDialog;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpdGhfZGlhbG9nLmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0FBR0E7Ozs7Ozs7O0FBRUE7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsU0FBUyxVQUFULENBQXFCLFNBQXJCLEVBQWdDO0FBQzlCLFNBQU8sa0JBQUssU0FBTCxFQUFnQjtBQUNyQixtQkFEcUIsNkJBQ0Y7QUFDakIsYUFBTztBQUNMLGdCQUFRO0FBREgsT0FBUDtBQUdELEtBTG9CO0FBTXJCLFVBTnFCLG9CQU1YO0FBQ1IsVUFBTSxJQUFJLElBQVY7QUFEUSxVQUVGLEtBRkUsR0FFZSxDQUZmLENBRUYsS0FGRTtBQUFBLFVBRUssS0FGTCxHQUVlLENBRmYsQ0FFSyxLQUZMO0FBQUEsVUFHRixNQUhFLEdBR1MsS0FIVCxDQUdGLE1BSEU7O0FBSVIsVUFBSSxpQkFBaUIsa0JBQU0sS0FBTixFQUFhO0FBQ2hDLGlCQUFTO0FBRHVCLE9BQWIsQ0FBckI7QUFHQSxhQUNFLDhCQUFDLFNBQUQsZUFBZ0IsY0FBaEI7QUFDVyw0QkFBcUIsRUFBRSxRQURsQztBQUVXLGdCQUFTO0FBRnBCLFNBREY7QUFNRCxLQW5Cb0I7OztBQXFCckI7QUFDQTtBQUNBO0FBQ0EsWUF4QnFCLDBCQXdCa0M7QUFBQSxVQUEzQyxLQUEyQyxRQUEzQyxLQUEyQztBQUFBLFVBQXBDLElBQW9DLFFBQXBDLElBQW9DO0FBQUEsVUFBOUIsT0FBOEIsUUFBOUIsT0FBOEI7QUFBQSxVQUFyQixNQUFxQixRQUFyQixNQUFxQjtBQUFBLFVBQWIsU0FBYSxRQUFiLFNBQWE7O0FBQ3JELFVBQU0sSUFBSSxJQUFWO0FBQ0EsYUFBTyxJQUFJLE9BQUosQ0FBWSxVQUFDLE9BQUQsRUFBVSxNQUFWLEVBQXFCO0FBQ3RDLFlBQUksU0FDRjtBQUFBO0FBQUEsbUJBQW9CLEVBQUUsWUFBRixFQUFTLGdCQUFULEVBQWtCLGNBQWxCLEVBQTBCLG9CQUExQixFQUFwQjtBQUNlLHlCQURmO0FBRWUsbUJBQVE7QUFBQSxxQkFBTSxRQUFRLElBQVIsQ0FBTjtBQUFBLGFBRnZCO0FBR2Usa0JBQU87QUFBQSxxQkFBTSxRQUFRLEtBQVIsQ0FBTjtBQUFBLGFBSHRCO0FBSWUscUJBQVU7QUFBQSxxQkFBTSxTQUFOO0FBQUE7QUFKekI7QUFLRyxjQUxIO0FBQUE7QUFBQSxTQURGO0FBUUEsVUFBRSxRQUFGLENBQVcsRUFBRSxjQUFGLEVBQVg7QUFDRCxPQVZNLEVBV0osSUFYSSxDQVdDLFVBQUMsTUFBRCxFQUFZO0FBQ2hCLFVBQUUsUUFBRixDQUFXLEVBQUUsUUFBUSxJQUFWLEVBQVg7QUFDQSxlQUFPLE1BQVA7QUFDRCxPQWRJLEVBZUosS0FmSSxDQWVFLFVBQUMsR0FBRCxFQUFTO0FBQ2QsVUFBRSxRQUFGLENBQVcsRUFBRSxRQUFRLElBQVYsRUFBWDtBQUNBLGVBQU8sUUFBUSxNQUFSLENBQWUsR0FBZixDQUFQO0FBQ0QsT0FsQkksQ0FBUDtBQW1CRDtBQTdDb0IsR0FBaEIsQ0FBUDtBQStDRDs7a0JBRWMsVSIsImZpbGUiOiJ3aXRoX2RpYWxvZy5qc3giLCJzb3VyY2VSb290IjoibGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZnVuY3Rpb24gd2l0aERpYWxvZ1xuICovXG4ndXNlIHN0cmljdCdcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHt3cmFwfSBmcm9tICdicmVhY3QnXG5pbXBvcnQge2Nsb25lfSBmcm9tICdhc29iaidcbmltcG9ydCBBcFllc25vRGlhbG9nIGZyb20gJy4vYXBfeWVzbm9fZGlhbG9nJ1xuXG5mdW5jdGlvbiB3aXRoRGlhbG9nIChDb21wb25lbnQpIHtcbiAgcmV0dXJuIHdyYXAoQ29tcG9uZW50LCB7XG4gICAgZ2V0SW5pdGlhbFN0YXRlICgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpYWxvZzogbnVsbFxuICAgICAgfVxuICAgIH0sXG4gICAgcmVuZGVyICgpIHtcbiAgICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgICBsZXQgeyBwcm9wcywgc3RhdGUgfSA9IHNcbiAgICAgIGxldCB7IGRpYWxvZyB9ID0gc3RhdGVcbiAgICAgIGxldCBjb21wb25lbnRQcm9wcyA9IGNsb25lKHByb3BzLCB7XG4gICAgICAgIHdpdGhvdXQ6IFtdXG4gICAgICB9KVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbXBvbmVudCB7IC4uLmNvbXBvbmVudFByb3BzfVxuICAgICAgICAgICAgICAgICAgIGFza1llc05vV2l0aERpYWxvZz17IHMuYXNrWWVzTm8gfVxuICAgICAgICAgICAgICAgICAgIGRpYWxvZz17IGRpYWxvZyB9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSxcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ3VzdG9tXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBhc2tZZXNObyAoeyB0aXRsZSwgdGV4dCwgeWVzVGV4dCwgbm9UZXh0LCBjbG9zZUljb24gfSkge1xuICAgICAgY29uc3QgcyA9IHRoaXNcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBkaWFsb2cgPSAoXG4gICAgICAgICAgPEFwWWVzbm9EaWFsb2cgeyAuLi57IHRpdGxlLCB5ZXNUZXh0LCBub1RleHQsIGNsb3NlSWNvbiB9IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgb25ZZXM9eyAoKSA9PiByZXNvbHZlKHRydWUpIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICBvbk5vPXsgKCkgPT4gcmVzb2x2ZShmYWxzZSkgfVxuICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9eyAoKSA9PiByZXNvbHZlKCkgfVxuICAgICAgICAgID57IHRleHQgfSA8L0FwWWVzbm9EaWFsb2c+XG4gICAgICAgIClcbiAgICAgICAgcy5zZXRTdGF0ZSh7IGRpYWxvZyB9KVxuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKGFuc3dlcikgPT4ge1xuICAgICAgICAgIHMuc2V0U3RhdGUoeyBkaWFsb2c6IG51bGwgfSlcbiAgICAgICAgICByZXR1cm4gYW5zd2VyXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgcy5zZXRTdGF0ZSh7IGRpYWxvZzogbnVsbCB9KVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpXG4gICAgICAgIH0pXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoRGlhbG9nXG4iXX0=