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/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,n=b?Symbol.for("react.placeholder"):60113;
134
- function q(a){if("object"===typeof a&&null!==a){var p=a.$$typeof;switch(p){case c:switch(a=a.type,a){case l:case e:case g:case f:return a;default:switch(a=a&&a.$$typeof,a){case k:case m:case h:return a;default:return p}}case d:return p}}}exports.typeOf=q;exports.AsyncMode=l;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=m;exports.Fragment=e;exports.Profiler=g;exports.Portal=d;exports.StrictMode=f;
135
- exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===l||a===g||a===f||a===n||"object"===typeof a&&null!==a&&("function"===typeof a.then||a.$$typeof===h||a.$$typeof===k||a.$$typeof===m)};exports.isAsyncMode=function(a){return q(a)===l};exports.isContextConsumer=function(a){return q(a)===k};exports.isContextProvider=function(a){return q(a)===h};exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};
136
- exports.isForwardRef=function(a){return q(a)===m};exports.isFragment=function(a){return q(a)===e};exports.isProfiler=function(a){return q(a)===g};exports.isPortal=function(a){return q(a)===d};exports.isStrictMode=function(a){return q(a)===f};
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.ContextConsumer;
143
- var reactIs_production_min_4 = reactIs_production_min.ContextProvider;
144
- var reactIs_production_min_5 = reactIs_production_min.Element;
145
- var reactIs_production_min_6 = reactIs_production_min.ForwardRef;
146
- var reactIs_production_min_7 = reactIs_production_min.Fragment;
147
- var reactIs_production_min_8 = reactIs_production_min.Profiler;
148
- var reactIs_production_min_9 = reactIs_production_min.Portal;
149
- var reactIs_production_min_10 = reactIs_production_min.StrictMode;
150
- var reactIs_production_min_11 = reactIs_production_min.isValidElementType;
151
- var reactIs_production_min_12 = reactIs_production_min.isAsyncMode;
152
- var reactIs_production_min_13 = reactIs_production_min.isContextConsumer;
153
- var reactIs_production_min_14 = reactIs_production_min.isContextProvider;
154
- var reactIs_production_min_15 = reactIs_production_min.isElement;
155
- var reactIs_production_min_16 = reactIs_production_min.isForwardRef;
156
- var reactIs_production_min_17 = reactIs_production_min.isFragment;
157
- var reactIs_production_min_18 = reactIs_production_min.isProfiler;
158
- var reactIs_production_min_19 = reactIs_production_min.isPortal;
159
- var reactIs_production_min_20 = reactIs_production_min.isStrictMode;
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 TYPE_STATICS = _defineProperty$1({}, reactIs.ForwardRef, (_ReactIs$ForwardRef = {}, _defineProperty$1(_ReactIs$ForwardRef, '$$typeof', true), _defineProperty$1(_ReactIs$ForwardRef, 'render', true), _ReactIs$ForwardRef));
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
- return _objectSpread({}, componentClass, {
1024
- render: function render() {
1025
- var _arguments = arguments;
1026
- return React__default.createElement(Observer, null, function () {
1027
- return _baseRender.apply(undefined, _arguments);
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
+ }