UNPKG

apeman-react-mixins

Version:
78 lines (59 loc) 4.34 kB
/** * Mixin for busy. * @class ApBusyMixin */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _apemantimer = require('apemantimer'); var _apemantimer2 = _interopRequireDefault(_apemantimer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @lends ApBusyMixin */ var ApBusyMixin = { // -------------------- // Custom // -------------------- $apBusyMixed: true, busy: false, isBusy: function isBusy() { var s = this; return s.busy; }, setBusy: function setBusy(busy) { var s = this; s.busy = busy; }, busyWhile: function busyWhile(duration) { var s = this; var _busyTimer = s._busyTimer; _busyTimer.cancelAll(); _busyTimer.timeout(function () { return s.setBusy(false); }, duration); s.setBusy(true); }, clearBusyWhile: function clearBusyWhile() { var s = this; var _busyTimer = s._busyTimer; _busyTimer.cancelAll(); }, // -------------------- // Specs // -------------------- componentWillMount: function componentWillMount() { var s = this; s._busyTimer = _apemantimer2.default.create(); }, componentWillUnmount: function componentWillUnmount() { var s = this; s.clearBusyWhile(); } // -------------------- // Lifecycle // -------------------- }; exports.default = Object.freeze(ApBusyMixin); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX2J1c3lfbWl4aW4uanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0E7Ozs7OztBQUVBOzs7O0FBQ0E7Ozs7Ozs7QUFHQSxJQUFNLGNBQWM7Ozs7O0FBS2xCLGdCQUFjLElBTEk7O0FBT2xCLFFBQU0sS0FQWTs7QUFTbEIsUUFUa0Isb0JBU1I7QUFDUixRQUFNLElBQUksSUFBVjtBQUNBLFdBQU8sRUFBRSxJQUFUO0FBQ0QsR0FaaUI7QUFjbEIsU0Fka0IsbUJBY1QsSUFkUyxFQWNIO0FBQ2IsUUFBTSxJQUFJLElBQVY7QUFDQSxNQUFFLElBQUYsR0FBUyxJQUFUO0FBQ0QsR0FqQmlCO0FBbUJsQixXQW5Ca0IscUJBbUJQLFFBbkJPLEVBbUJHO0FBQ25CLFFBQU0sSUFBSSxJQUFWO0FBRG1CLFFBRWIsVUFGYSxHQUVFLENBRkYsQ0FFYixVQUZhOztBQUduQixlQUFXLFNBQVg7QUFDQSxlQUFXLE9BQVgsQ0FBbUI7QUFBQSxhQUFNLEVBQUUsT0FBRixDQUFVLEtBQVYsQ0FBTjtBQUFBLEtBQW5CLEVBQTJDLFFBQTNDO0FBQ0EsTUFBRSxPQUFGLENBQVUsSUFBVjtBQUNELEdBekJpQjtBQTJCbEIsZ0JBM0JrQiw0QkEyQkE7QUFDaEIsUUFBTSxJQUFJLElBQVY7QUFEZ0IsUUFFVixVQUZVLEdBRUssQ0FGTCxDQUVWLFVBRlU7O0FBR2hCLGVBQVcsU0FBWDtBQUNELEdBL0JpQjs7Ozs7OztBQXFDbEIsb0JBckNrQixnQ0FxQ0k7QUFDcEIsUUFBTSxJQUFJLElBQVY7QUFDQSxNQUFFLFVBQUYsR0FBZSxzQkFBWSxNQUFaLEVBQWY7QUFDRCxHQXhDaUI7QUEwQ2xCLHNCQTFDa0Isa0NBMENNO0FBQ3RCLFFBQU0sSUFBSSxJQUFWO0FBQ0EsTUFBRSxjQUFGO0FBQ0Q7Ozs7OztBQTdDaUIsQ0FBcEI7O2tCQXFEZSxPQUFPLE1BQVAsQ0FBYyxXQUFkLEMiLCJmaWxlIjoiYXBfYnVzeV9taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvb2t1bmlzaGluaXNoaS9Qcm9qZWN0cy9hcGVtYW4tcHJvamVjdHMvYXBlbWFuLXJlYWN0LW1peGlucy9saWIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1peGluIGZvciBidXN5LlxuICogQGNsYXNzIEFwQnVzeU1peGluXG4gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBSZWFjdCwge1Byb3BUeXBlcyBhcyB0eXBlc30gZnJvbSAncmVhY3QnXG5pbXBvcnQgQXBlbWFudGltZXIgZnJvbSAnYXBlbWFudGltZXInXG5cbi8qKiBAbGVuZHMgQXBCdXN5TWl4aW4gKi9cbmNvbnN0IEFwQnVzeU1peGluID0ge1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEN1c3RvbVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAkYXBCdXN5TWl4ZWQ6IHRydWUsXG5cbiAgYnVzeTogZmFsc2UsXG5cbiAgaXNCdXN5ICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIHJldHVybiBzLmJ1c3lcbiAgfSxcblxuICBzZXRCdXN5IChidXN5KSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBzLmJ1c3kgPSBidXN5XG4gIH0sXG5cbiAgYnVzeVdoaWxlIChkdXJhdGlvbikge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgX2J1c3lUaW1lciB9ID0gc1xuICAgIF9idXN5VGltZXIuY2FuY2VsQWxsKClcbiAgICBfYnVzeVRpbWVyLnRpbWVvdXQoKCkgPT4gcy5zZXRCdXN5KGZhbHNlKSwgZHVyYXRpb24pXG4gICAgcy5zZXRCdXN5KHRydWUpXG4gIH0sXG5cbiAgY2xlYXJCdXN5V2hpbGUgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgX2J1c3lUaW1lciB9ID0gc1xuICAgIF9idXN5VGltZXIuY2FuY2VsQWxsKClcbiAgfSxcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGVjc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNvbXBvbmVudFdpbGxNb3VudCAoKSB7XG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBzLl9idXN5VGltZXIgPSBBcGVtYW50aW1lci5jcmVhdGUoKVxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIHMuY2xlYXJCdXN5V2hpbGUoKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmZyZWV6ZShBcEJ1c3lNaXhpbilcbiJdfQ==