mobx-react 5.4.2 → 5.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserlistrc +6 -6
- package/.editorconfig +6 -6
- package/.prettierrc +4 -4
- package/.travis.yml +9 -9
- package/CHANGELOG.md +518 -514
- package/LICENSE +21 -21
- package/README.md +517 -517
- package/custom.d.ts +140 -140
- package/custom.js +75 -87
- package/custom.module.js +72 -84
- package/empty.js +3 -3
- package/index.d.ts +140 -140
- package/index.js +75 -87
- package/index.min.js +1 -1
- package/index.module.js +72 -84
- package/native.d.ts +140 -140
- package/native.js +72 -84
- package/package.json +4 -4
- package/yarn.lock +5886 -5863
package/custom.module.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React__default, { Component, createElement, PureComponent, forwardRef, Children } from 'react';
|
|
2
1
|
import { isObservableArray, isObservableObject, isObservableMap, untracked, createAtom, Reaction, _allowStateChanges, $mobx, spy, getDebugName } from 'mobx';
|
|
2
|
+
import React__default, { Component, createElement, PureComponent, forwardRef, Children } from 'react';
|
|
3
3
|
|
|
4
4
|
function _typeof(obj) {
|
|
5
5
|
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
@@ -52,25 +52,6 @@ function _defineProperty(obj, key, value) {
|
|
|
52
52
|
return obj;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
function _objectSpread(target) {
|
|
56
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
57
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
58
|
-
var ownKeys = Object.keys(source);
|
|
59
|
-
|
|
60
|
-
if (typeof Object.getOwnPropertySymbols === 'function') {
|
|
61
|
-
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
62
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
ownKeys.forEach(function (key) {
|
|
67
|
-
_defineProperty(target, key, source[key]);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return target;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
55
|
function _inherits(subClass, superClass) {
|
|
75
56
|
if (typeof superClass !== "function" && superClass !== null) {
|
|
76
57
|
throw new TypeError("Super expression must either be null or a function");
|
|
@@ -130,33 +111,35 @@ function createCommonjsModule(fn, module) {
|
|
|
130
111
|
|
|
131
112
|
var reactIs_production_min = createCommonjsModule(function (module, exports) {
|
|
132
113
|
Object.defineProperty(exports,"__esModule",{value:!0});
|
|
133
|
-
var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.forward_ref"):60112,
|
|
134
|
-
function
|
|
135
|
-
exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===
|
|
136
|
-
exports.isForwardRef=function(a){return
|
|
114
|
+
var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,r=b?Symbol.for("react.memo"):
|
|
115
|
+
60115,t=b?Symbol.for("react.lazy"):60116;function u(a){if("object"===typeof a&&null!==a){var q=a.$$typeof;switch(q){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return q}}case d:return q}}}function v(a){return u(a)===m}exports.typeOf=u;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;
|
|
116
|
+
exports.Profiler=g;exports.Portal=d;exports.StrictMode=f;exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||u(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return u(a)===k};exports.isContextProvider=function(a){return u(a)===h};
|
|
117
|
+
exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return u(a)===n};exports.isFragment=function(a){return u(a)===e};exports.isProfiler=function(a){return u(a)===g};exports.isPortal=function(a){return u(a)===d};exports.isStrictMode=function(a){return u(a)===f};
|
|
137
118
|
});
|
|
138
119
|
|
|
139
120
|
unwrapExports(reactIs_production_min);
|
|
140
121
|
var reactIs_production_min_1 = reactIs_production_min.typeOf;
|
|
141
122
|
var reactIs_production_min_2 = reactIs_production_min.AsyncMode;
|
|
142
|
-
var reactIs_production_min_3 = reactIs_production_min.
|
|
143
|
-
var reactIs_production_min_4 = reactIs_production_min.
|
|
144
|
-
var reactIs_production_min_5 = reactIs_production_min.
|
|
145
|
-
var reactIs_production_min_6 = reactIs_production_min.
|
|
146
|
-
var reactIs_production_min_7 = reactIs_production_min.
|
|
147
|
-
var reactIs_production_min_8 = reactIs_production_min.
|
|
148
|
-
var reactIs_production_min_9 = reactIs_production_min.
|
|
149
|
-
var reactIs_production_min_10 = reactIs_production_min.
|
|
150
|
-
var reactIs_production_min_11 = reactIs_production_min.
|
|
151
|
-
var reactIs_production_min_12 = reactIs_production_min.
|
|
152
|
-
var reactIs_production_min_13 = reactIs_production_min.
|
|
153
|
-
var reactIs_production_min_14 = reactIs_production_min.
|
|
154
|
-
var reactIs_production_min_15 = reactIs_production_min.
|
|
155
|
-
var reactIs_production_min_16 = reactIs_production_min.
|
|
156
|
-
var reactIs_production_min_17 = reactIs_production_min.
|
|
157
|
-
var reactIs_production_min_18 = reactIs_production_min.
|
|
158
|
-
var reactIs_production_min_19 = reactIs_production_min.
|
|
159
|
-
var reactIs_production_min_20 = reactIs_production_min.
|
|
123
|
+
var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode;
|
|
124
|
+
var reactIs_production_min_4 = reactIs_production_min.ContextConsumer;
|
|
125
|
+
var reactIs_production_min_5 = reactIs_production_min.ContextProvider;
|
|
126
|
+
var reactIs_production_min_6 = reactIs_production_min.Element;
|
|
127
|
+
var reactIs_production_min_7 = reactIs_production_min.ForwardRef;
|
|
128
|
+
var reactIs_production_min_8 = reactIs_production_min.Fragment;
|
|
129
|
+
var reactIs_production_min_9 = reactIs_production_min.Profiler;
|
|
130
|
+
var reactIs_production_min_10 = reactIs_production_min.Portal;
|
|
131
|
+
var reactIs_production_min_11 = reactIs_production_min.StrictMode;
|
|
132
|
+
var reactIs_production_min_12 = reactIs_production_min.isValidElementType;
|
|
133
|
+
var reactIs_production_min_13 = reactIs_production_min.isAsyncMode;
|
|
134
|
+
var reactIs_production_min_14 = reactIs_production_min.isConcurrentMode;
|
|
135
|
+
var reactIs_production_min_15 = reactIs_production_min.isContextConsumer;
|
|
136
|
+
var reactIs_production_min_16 = reactIs_production_min.isContextProvider;
|
|
137
|
+
var reactIs_production_min_17 = reactIs_production_min.isElement;
|
|
138
|
+
var reactIs_production_min_18 = reactIs_production_min.isForwardRef;
|
|
139
|
+
var reactIs_production_min_19 = reactIs_production_min.isFragment;
|
|
140
|
+
var reactIs_production_min_20 = reactIs_production_min.isProfiler;
|
|
141
|
+
var reactIs_production_min_21 = reactIs_production_min.isPortal;
|
|
142
|
+
var reactIs_production_min_22 = reactIs_production_min.isStrictMode;
|
|
160
143
|
|
|
161
144
|
var reactIs = createCommonjsModule(function (module) {
|
|
162
145
|
|
|
@@ -165,22 +148,19 @@ var reactIs = createCommonjsModule(function (module) {
|
|
|
165
148
|
}
|
|
166
149
|
});
|
|
167
150
|
|
|
168
|
-
var _ReactIs$ForwardRef;
|
|
169
|
-
|
|
170
|
-
function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
171
|
-
|
|
172
151
|
/**
|
|
173
152
|
* Copyright 2015, Yahoo! Inc.
|
|
174
153
|
* Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
|
175
154
|
*/
|
|
176
155
|
|
|
177
|
-
|
|
178
156
|
var REACT_STATICS = {
|
|
179
157
|
childContextTypes: true,
|
|
158
|
+
contextType: true,
|
|
180
159
|
contextTypes: true,
|
|
181
160
|
defaultProps: true,
|
|
182
161
|
displayName: true,
|
|
183
162
|
getDefaultProps: true,
|
|
163
|
+
getDerivedStateFromError: true,
|
|
184
164
|
getDerivedStateFromProps: true,
|
|
185
165
|
mixins: true,
|
|
186
166
|
propTypes: true,
|
|
@@ -197,7 +177,16 @@ var KNOWN_STATICS = {
|
|
|
197
177
|
arity: true
|
|
198
178
|
};
|
|
199
179
|
|
|
200
|
-
var
|
|
180
|
+
var FORWARD_REF_STATICS = {
|
|
181
|
+
'$$typeof': true,
|
|
182
|
+
render: true,
|
|
183
|
+
defaultProps: true,
|
|
184
|
+
displayName: true,
|
|
185
|
+
propTypes: true
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
var TYPE_STATICS = {};
|
|
189
|
+
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
|
|
201
190
|
|
|
202
191
|
var defineProperty = Object.defineProperty;
|
|
203
192
|
var getOwnPropertyNames = Object.getOwnPropertyNames;
|
|
@@ -581,8 +570,8 @@ var proxiedInjectorProps = {
|
|
|
581
570
|
configurable: true,
|
|
582
571
|
enumerable: true
|
|
583
572
|
}
|
|
584
|
-
/**
|
|
585
|
-
* Store Injection
|
|
573
|
+
/**
|
|
574
|
+
* Store Injection
|
|
586
575
|
*/
|
|
587
576
|
|
|
588
577
|
};
|
|
@@ -666,11 +655,11 @@ function grabStoresByName(storeNames) {
|
|
|
666
655
|
return nextProps;
|
|
667
656
|
};
|
|
668
657
|
}
|
|
669
|
-
/**
|
|
670
|
-
* higher order component that injects stores to a child.
|
|
671
|
-
* takes either a varargs list of strings, which are stores read from the context,
|
|
672
|
-
* or a function that manually maps the available stores from the context to props:
|
|
673
|
-
* storesToProps(mobxStores, props, context) => newProps
|
|
658
|
+
/**
|
|
659
|
+
* higher order component that injects stores to a child.
|
|
660
|
+
* takes either a varargs list of strings, which are stores read from the context,
|
|
661
|
+
* or a function that manually maps the available stores from the context to props:
|
|
662
|
+
* storesToProps(mobxStores, props, context) => newProps
|
|
674
663
|
*/
|
|
675
664
|
|
|
676
665
|
|
|
@@ -708,8 +697,8 @@ function inject()
|
|
|
708
697
|
|
|
709
698
|
var mobxAdminProperty = $mobx || "$mobx";
|
|
710
699
|
var mobxIsUnmounted = newSymbol("isUnmounted");
|
|
711
|
-
/**
|
|
712
|
-
* dev tool support
|
|
700
|
+
/**
|
|
701
|
+
* dev tool support
|
|
713
702
|
*/
|
|
714
703
|
|
|
715
704
|
var isDevtoolsEnabled = false;
|
|
@@ -722,11 +711,11 @@ var skipRenderKey = newSymbol("skipRender");
|
|
|
722
711
|
var isForcingUpdateKey = newSymbol("isForcingUpdate"); // Using react-is had some issues (and operates on elements, not on types), see #608 / #609
|
|
723
712
|
|
|
724
713
|
var ReactForwardRefSymbol = typeof forwardRef === "function" && forwardRef(function (_props, _ref) {})["$$typeof"];
|
|
725
|
-
/**
|
|
726
|
-
* Helper to set `prop` to `this` as non-enumerable (hidden prop)
|
|
727
|
-
* @param target
|
|
728
|
-
* @param prop
|
|
729
|
-
* @param value
|
|
714
|
+
/**
|
|
715
|
+
* Helper to set `prop` to `this` as non-enumerable (hidden prop)
|
|
716
|
+
* @param target
|
|
717
|
+
* @param prop
|
|
718
|
+
* @param value
|
|
730
719
|
*/
|
|
731
720
|
|
|
732
721
|
function setHiddenProp(target, prop, value) {
|
|
@@ -766,13 +755,13 @@ function trackComponents() {
|
|
|
766
755
|
function useStaticRendering(useStaticRendering) {
|
|
767
756
|
isUsingStaticRendering = useStaticRendering;
|
|
768
757
|
}
|
|
769
|
-
/**
|
|
770
|
-
* Errors reporter
|
|
758
|
+
/**
|
|
759
|
+
* Errors reporter
|
|
771
760
|
*/
|
|
772
761
|
|
|
773
762
|
var errorsReporter = new EventEmitter();
|
|
774
|
-
/**
|
|
775
|
-
* Utilities
|
|
763
|
+
/**
|
|
764
|
+
* Utilities
|
|
776
765
|
*/
|
|
777
766
|
|
|
778
767
|
function patch$1(target, funcName) {
|
|
@@ -847,15 +836,15 @@ function makeComponentReactive(render) {
|
|
|
847
836
|
|
|
848
837
|
var initialName = this.displayName || this.name || this.constructor && (this.constructor.displayName || this.constructor.name) || "<component>";
|
|
849
838
|
var rootNodeID = this._reactInternalInstance && this._reactInternalInstance._rootNodeID || this._reactInternalInstance && this._reactInternalInstance._debugID || this._reactInternalFiber && this._reactInternalFiber._debugID;
|
|
850
|
-
/**
|
|
851
|
-
* If props are shallowly modified, react will render anyway,
|
|
852
|
-
* so atom.reportChanged() should not result in yet another re-render
|
|
839
|
+
/**
|
|
840
|
+
* If props are shallowly modified, react will render anyway,
|
|
841
|
+
* so atom.reportChanged() should not result in yet another re-render
|
|
853
842
|
*/
|
|
854
843
|
|
|
855
844
|
setHiddenProp(this, skipRenderKey, false);
|
|
856
|
-
/**
|
|
857
|
-
* forceUpdate will re-assign this.props. We don't want that to cause a loop,
|
|
858
|
-
* so detect these changes
|
|
845
|
+
/**
|
|
846
|
+
* forceUpdate will re-assign this.props. We don't want that to cause a loop,
|
|
847
|
+
* so detect these changes
|
|
859
848
|
*/
|
|
860
849
|
|
|
861
850
|
setHiddenProp(this, isForcingUpdateKey, false); // wire up reactive render
|
|
@@ -892,8 +881,8 @@ function makeComponentReactive(render) {
|
|
|
892
881
|
this.render = reactiveRender;
|
|
893
882
|
return reactiveRender.call(this);
|
|
894
883
|
}
|
|
895
|
-
/**
|
|
896
|
-
* ReactiveMixin
|
|
884
|
+
/**
|
|
885
|
+
* ReactiveMixin
|
|
897
886
|
*/
|
|
898
887
|
|
|
899
888
|
|
|
@@ -976,8 +965,8 @@ function makeObservableProp(target, propName) {
|
|
|
976
965
|
}
|
|
977
966
|
});
|
|
978
967
|
}
|
|
979
|
-
/**
|
|
980
|
-
* Observer function / decorator
|
|
968
|
+
/**
|
|
969
|
+
* Observer function / decorator
|
|
981
970
|
*/
|
|
982
971
|
|
|
983
972
|
|
|
@@ -1019,14 +1008,13 @@ function observer(arg1, arg2) {
|
|
|
1019
1008
|
|
|
1020
1009
|
if (ReactForwardRefSymbol && componentClass["$$typeof"] === ReactForwardRefSymbol) {
|
|
1021
1010
|
var _baseRender = componentClass.render;
|
|
1022
|
-
if (typeof _baseRender !== "function") throw new Error("render property of ForwardRef was not a function");
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
}
|
|
1011
|
+
if (typeof _baseRender !== "function") throw new Error("render property of ForwardRef was not a function"); // TODO: do we need to hoist statics from baseRender to the forward ref?
|
|
1012
|
+
|
|
1013
|
+
return forwardRef(function ObserverForwardRef() {
|
|
1014
|
+
var _arguments = arguments;
|
|
1015
|
+
return React__default.createElement(Observer, null, function () {
|
|
1016
|
+
return _baseRender.apply(undefined, _arguments);
|
|
1017
|
+
});
|
|
1030
1018
|
});
|
|
1031
1019
|
} // Stateless function component:
|
|
1032
1020
|
// If it is function but doesn't seem to be a react class constructor,
|
package/empty.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
// These functions can be stubbed out in specific environments
|
|
2
|
-
export const unstable_batchedUpdates = undefined
|
|
3
|
-
export const findDOMNode = undefined
|
|
1
|
+
// These functions can be stubbed out in specific environments
|
|
2
|
+
export const unstable_batchedUpdates = undefined
|
|
3
|
+
export const findDOMNode = undefined
|
package/index.d.ts
CHANGED
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Turns a React component or stateless render function into a reactive component.
|
|
3
|
-
*/
|
|
4
|
-
import * as React from "react"
|
|
5
|
-
|
|
6
|
-
export type IReactComponent<P = any> =
|
|
7
|
-
| React.StatelessComponent<P>
|
|
8
|
-
| React.ComponentClass<P>
|
|
9
|
-
| React.ClassicComponentClass<P>
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Observer
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
// Deprecated: observer with with stores (as decorator)
|
|
16
|
-
export function observer(stores: string[]): <T extends IReactComponent>(clazz: T) => void
|
|
17
|
-
// Deprecated: observer with with stores
|
|
18
|
-
export function observer<T extends IReactComponent>(stores: string[], clazz: T): T
|
|
19
|
-
export function observer<T extends IReactComponent>(target: T): T
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Inject
|
|
23
|
-
*/
|
|
24
|
-
export type IValueMap = { [key: string]: any }
|
|
25
|
-
export type IStoresToProps<
|
|
26
|
-
S extends IValueMap = {},
|
|
27
|
-
P extends IValueMap = {},
|
|
28
|
-
I extends IValueMap = {},
|
|
29
|
-
C extends IValueMap = {}
|
|
30
|
-
> = (stores: S, nextProps: P, context: C) => I
|
|
31
|
-
|
|
32
|
-
export type IWrappedComponent<P> = {
|
|
33
|
-
wrappedComponent: IReactComponent<P>
|
|
34
|
-
wrappedInstance: React.ReactInstance | undefined
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Ideally we would want to return React.ComponentClass<Partial<P>>,
|
|
38
|
-
// but TS doesn't allow such things in decorators, like we do in the non-decorator version
|
|
39
|
-
// See also #256
|
|
40
|
-
export function inject(
|
|
41
|
-
...stores: string[]
|
|
42
|
-
): <T extends IReactComponent<any>>(
|
|
43
|
-
target: T
|
|
44
|
-
) => T & (T extends IReactComponent<infer P> ? IWrappedComponent<P> : never)
|
|
45
|
-
export function inject<S, P, I, C>(
|
|
46
|
-
fn: IStoresToProps<S, P, I, C>
|
|
47
|
-
): <T extends IReactComponent>(target: T) => T & IWrappedComponent<P>
|
|
48
|
-
|
|
49
|
-
// Ideal implementation:
|
|
50
|
-
// export function inject
|
|
51
|
-
// (
|
|
52
|
-
// fn: IStoresToProps
|
|
53
|
-
// ):
|
|
54
|
-
// <P>(target: IReactComponent<P>) => IReactComponent<Partial<P>> & IWrappedComponent<IReactComponent<Partial<P>>>
|
|
55
|
-
//
|
|
56
|
-
// Or even better: (but that would require type inference to work other way around)
|
|
57
|
-
// export function inject<P, I>
|
|
58
|
-
// (
|
|
59
|
-
// fn: IStoresToProps<any, P, I>
|
|
60
|
-
// ):
|
|
61
|
-
// <T extends IReactComponent<P & S>(target: T) => IReactComponent<P> & IWrappedComponent<T>
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* disposeOnUnmount
|
|
65
|
-
*/
|
|
66
|
-
type Disposer = () => void
|
|
67
|
-
export function disposeOnUnmount(target: React.Component<any, any>, propertyKey: string): void
|
|
68
|
-
export function disposeOnUnmount<TF extends Disposer | Disposer[]>(
|
|
69
|
-
target: React.Component<any, any>,
|
|
70
|
-
fn: TF
|
|
71
|
-
): TF
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Utilities
|
|
75
|
-
*/
|
|
76
|
-
export function onError(cb: (error: Error) => void): () => void
|
|
77
|
-
|
|
78
|
-
export class Provider extends React.Component<any, {}> {}
|
|
79
|
-
|
|
80
|
-
export class Observer extends React.Component<
|
|
81
|
-
{
|
|
82
|
-
children?: () => React.ReactNode
|
|
83
|
-
render?: () => React.ReactNode
|
|
84
|
-
},
|
|
85
|
-
{}
|
|
86
|
-
> {}
|
|
87
|
-
|
|
88
|
-
export function useStaticRendering(value: boolean): void
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Enable dev tool support, makes sure that renderReport emits events.
|
|
92
|
-
*/
|
|
93
|
-
export function trackComponents(): void
|
|
94
|
-
|
|
95
|
-
export const renderReporter: RenderReporter
|
|
96
|
-
|
|
97
|
-
export interface RenderReporter {
|
|
98
|
-
on(handler: (data: IRenderEvent) => void): void
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export interface IRenderEvent {
|
|
102
|
-
event: "render" | "destroy"
|
|
103
|
-
renderTime?: number
|
|
104
|
-
totalTime?: number
|
|
105
|
-
component: React.ReactElement<any> // Component instance
|
|
106
|
-
node: any // DOMNode
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* WeakMap DOMNode -> Component instance
|
|
111
|
-
* @deprecated
|
|
112
|
-
*/
|
|
113
|
-
export const componentByNodeRegistery: any
|
|
114
|
-
/**
|
|
115
|
-
* WeakMap DOMNode -> Component instance
|
|
116
|
-
*/
|
|
117
|
-
export const componentByNodeRegistry: any
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* @deprecated, use PropTypes instead
|
|
121
|
-
*/
|
|
122
|
-
export const propTypes: {
|
|
123
|
-
observableArray: React.Requireable<any>
|
|
124
|
-
observableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
125
|
-
observableMap: React.Requireable<any>
|
|
126
|
-
observableObject: React.Requireable<any>
|
|
127
|
-
arrayOrObservableArray: React.Requireable<any>
|
|
128
|
-
arrayOrObservableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
129
|
-
objectOrObservableObject: React.Requireable<any>
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export const PropTypes: {
|
|
133
|
-
observableArray: React.Requireable<any>
|
|
134
|
-
observableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
135
|
-
observableMap: React.Requireable<any>
|
|
136
|
-
observableObject: React.Requireable<any>
|
|
137
|
-
arrayOrObservableArray: React.Requireable<any>
|
|
138
|
-
arrayOrObservableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
139
|
-
objectOrObservableObject: React.Requireable<any>
|
|
140
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Turns a React component or stateless render function into a reactive component.
|
|
3
|
+
*/
|
|
4
|
+
import * as React from "react"
|
|
5
|
+
|
|
6
|
+
export type IReactComponent<P = any> =
|
|
7
|
+
| React.StatelessComponent<P>
|
|
8
|
+
| React.ComponentClass<P>
|
|
9
|
+
| React.ClassicComponentClass<P>
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Observer
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
// Deprecated: observer with with stores (as decorator)
|
|
16
|
+
export function observer(stores: string[]): <T extends IReactComponent>(clazz: T) => void
|
|
17
|
+
// Deprecated: observer with with stores
|
|
18
|
+
export function observer<T extends IReactComponent>(stores: string[], clazz: T): T
|
|
19
|
+
export function observer<T extends IReactComponent>(target: T): T
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Inject
|
|
23
|
+
*/
|
|
24
|
+
export type IValueMap = { [key: string]: any }
|
|
25
|
+
export type IStoresToProps<
|
|
26
|
+
S extends IValueMap = {},
|
|
27
|
+
P extends IValueMap = {},
|
|
28
|
+
I extends IValueMap = {},
|
|
29
|
+
C extends IValueMap = {}
|
|
30
|
+
> = (stores: S, nextProps: P, context: C) => I
|
|
31
|
+
|
|
32
|
+
export type IWrappedComponent<P> = {
|
|
33
|
+
wrappedComponent: IReactComponent<P>
|
|
34
|
+
wrappedInstance: React.ReactInstance | undefined
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Ideally we would want to return React.ComponentClass<Partial<P>>,
|
|
38
|
+
// but TS doesn't allow such things in decorators, like we do in the non-decorator version
|
|
39
|
+
// See also #256
|
|
40
|
+
export function inject(
|
|
41
|
+
...stores: string[]
|
|
42
|
+
): <T extends IReactComponent<any>>(
|
|
43
|
+
target: T
|
|
44
|
+
) => T & (T extends IReactComponent<infer P> ? IWrappedComponent<P> : never)
|
|
45
|
+
export function inject<S, P, I, C>(
|
|
46
|
+
fn: IStoresToProps<S, P, I, C>
|
|
47
|
+
): <T extends IReactComponent>(target: T) => T & IWrappedComponent<P>
|
|
48
|
+
|
|
49
|
+
// Ideal implementation:
|
|
50
|
+
// export function inject
|
|
51
|
+
// (
|
|
52
|
+
// fn: IStoresToProps
|
|
53
|
+
// ):
|
|
54
|
+
// <P>(target: IReactComponent<P>) => IReactComponent<Partial<P>> & IWrappedComponent<IReactComponent<Partial<P>>>
|
|
55
|
+
//
|
|
56
|
+
// Or even better: (but that would require type inference to work other way around)
|
|
57
|
+
// export function inject<P, I>
|
|
58
|
+
// (
|
|
59
|
+
// fn: IStoresToProps<any, P, I>
|
|
60
|
+
// ):
|
|
61
|
+
// <T extends IReactComponent<P & S>(target: T) => IReactComponent<P> & IWrappedComponent<T>
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* disposeOnUnmount
|
|
65
|
+
*/
|
|
66
|
+
type Disposer = () => void
|
|
67
|
+
export function disposeOnUnmount(target: React.Component<any, any>, propertyKey: string): void
|
|
68
|
+
export function disposeOnUnmount<TF extends Disposer | Disposer[]>(
|
|
69
|
+
target: React.Component<any, any>,
|
|
70
|
+
fn: TF
|
|
71
|
+
): TF
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Utilities
|
|
75
|
+
*/
|
|
76
|
+
export function onError(cb: (error: Error) => void): () => void
|
|
77
|
+
|
|
78
|
+
export class Provider extends React.Component<any, {}> {}
|
|
79
|
+
|
|
80
|
+
export class Observer extends React.Component<
|
|
81
|
+
{
|
|
82
|
+
children?: () => React.ReactNode
|
|
83
|
+
render?: () => React.ReactNode
|
|
84
|
+
},
|
|
85
|
+
{}
|
|
86
|
+
> {}
|
|
87
|
+
|
|
88
|
+
export function useStaticRendering(value: boolean): void
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Enable dev tool support, makes sure that renderReport emits events.
|
|
92
|
+
*/
|
|
93
|
+
export function trackComponents(): void
|
|
94
|
+
|
|
95
|
+
export const renderReporter: RenderReporter
|
|
96
|
+
|
|
97
|
+
export interface RenderReporter {
|
|
98
|
+
on(handler: (data: IRenderEvent) => void): void
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface IRenderEvent {
|
|
102
|
+
event: "render" | "destroy"
|
|
103
|
+
renderTime?: number
|
|
104
|
+
totalTime?: number
|
|
105
|
+
component: React.ReactElement<any> // Component instance
|
|
106
|
+
node: any // DOMNode
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* WeakMap DOMNode -> Component instance
|
|
111
|
+
* @deprecated
|
|
112
|
+
*/
|
|
113
|
+
export const componentByNodeRegistery: any
|
|
114
|
+
/**
|
|
115
|
+
* WeakMap DOMNode -> Component instance
|
|
116
|
+
*/
|
|
117
|
+
export const componentByNodeRegistry: any
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @deprecated, use PropTypes instead
|
|
121
|
+
*/
|
|
122
|
+
export const propTypes: {
|
|
123
|
+
observableArray: React.Requireable<any>
|
|
124
|
+
observableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
125
|
+
observableMap: React.Requireable<any>
|
|
126
|
+
observableObject: React.Requireable<any>
|
|
127
|
+
arrayOrObservableArray: React.Requireable<any>
|
|
128
|
+
arrayOrObservableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
129
|
+
objectOrObservableObject: React.Requireable<any>
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export const PropTypes: {
|
|
133
|
+
observableArray: React.Requireable<any>
|
|
134
|
+
observableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
135
|
+
observableMap: React.Requireable<any>
|
|
136
|
+
observableObject: React.Requireable<any>
|
|
137
|
+
arrayOrObservableArray: React.Requireable<any>
|
|
138
|
+
arrayOrObservableArrayOf: (type: React.Validator<any>) => React.Requireable<any>
|
|
139
|
+
objectOrObservableObject: React.Requireable<any>
|
|
140
|
+
}
|