UNPKG

5.24 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7require('./slicedToArray-0711941d.js');
8require('./unsupportedIterableToArray-68db1d3b.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var defineProperty$1 = require('./defineProperty-0921a47c.js');
13require('./toConsumableArray-d8a4a2c3.js');
14var getPrototypeOf = require('./getPrototypeOf-2a661a20.js');
15require('./color.js');
16require('./components.js');
17require('./contains-component.js');
18require('./css.js');
19require('./dayjs.min-e07657bf.js');
20require('./date.js');
21require('./miscellaneous.js');
22var environment = require('./environment.js');
23require('./font.js');
24require('./math-f4029164.js');
25require('./characters.js');
26require('./format.js');
27require('./keycodes.js');
28require('./url.js');
29require('./web3.js');
30var _extends$1 = require('./extends-40571110.js');
31var getDisplayName = require('./getDisplayName-7ab6d318.js');
32
33function _createSuper(Derived) { return function () { var Super = getPrototypeOf._getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = getPrototypeOf._getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return getPrototypeOf._possibleConstructorReturn(this, result); }; }
34
35function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
36
37var observe = function observe(_observe) {
38 var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
39 return function (Component) {
40 var _class, _temp;
41
42 return _temp = _class = /*#__PURE__*/function (_React$Component) {
43 getPrototypeOf._inherits(_class, _React$Component);
44
45 var _super = _createSuper(_class);
46
47 function _class() {
48 var _this;
49
50 getPrototypeOf._classCallCheck(this, _class);
51
52 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
53 args[_key] = arguments[_key];
54 }
55
56 _this = _super.call.apply(_super, [this].concat(args));
57
58 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "state", initialState);
59
60 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "subscribe", function (observable) {
61 if (observable) {
62 _this.setState({
63 subscription: _observe(observable).subscribe(function (state) {
64 _this.setState(state);
65 })
66 });
67 }
68 });
69
70 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "unsubscribe", function () {
71 _this.state.subscription && _this.state.subscription.unsubscribe();
72 });
73
74 return _this;
75 }
76
77 getPrototypeOf._createClass(_class, [{
78 key: "componentDidMount",
79 value: function componentDidMount() {
80 this.subscribe(this.props.observable);
81 }
82 }, {
83 key: "componentWillReceiveProps",
84 value: function componentWillReceiveProps(_ref) {
85 var nextObservable = _ref.observable;
86 var observable = this.props.observable; // If a new observable gets passed in, unsubscribe from the old and subscribe to the new
87
88 if (nextObservable !== observable) {
89 this.unsubscribe();
90 this.subscribe(nextObservable);
91 }
92 }
93 }, {
94 key: "componentWillUnmount",
95 value: function componentWillUnmount() {
96 this.unsubscribe();
97 }
98 }, {
99 key: "render",
100 value: function render() {
101 environment.warnOnce('observe()', 'observe() is deprecated. If you are using it with @aragon/api, using @aragon/api-react is now recommended instead.');
102
103 var props = _extends$1._extends({}, this.props); // Don't pass down the given observable
104
105
106 delete props.observable;
107 return /*#__PURE__*/React__default.createElement(Component, _extends$1._extends({}, this.state, props));
108 }
109 }]);
110
111 return _class;
112 }(React__default.Component), defineProperty$1._defineProperty(_class, "displayName", "Observe(".concat(getDisplayName.getDisplayName(Component), ")")), defineProperty$1._defineProperty(_class, "propTypes", {
113 observable: function observable(_ref2, _, componentName) {
114 var _observable = _ref2.observable;
115
116 if (_observable && typeof _observable.subscribe !== 'function') {
117 throw new Error("Invalid prop `observable` supplied to `".concat(componentName, "` ") + '(wrapped by `observe()`). ' + '`observable` must be an RxJS Observable-like object. ' + "Given ".concat(_observable, " instead."));
118 }
119 }
120 }), _temp;
121 };
122};
123
124exports.observe = observe;
125//# sourceMappingURL=observe.js.map