react-dom 16.8.3 → 16.8.4

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.
Files changed (34) hide show
  1. package/build-info.json +5 -5
  2. package/cjs/react-dom-server.browser.development.js +2 -2
  3. package/cjs/react-dom-server.browser.production.min.js +2 -2
  4. package/cjs/react-dom-server.node.development.js +2 -2
  5. package/cjs/react-dom-server.node.production.min.js +2 -2
  6. package/cjs/react-dom-test-utils.development.js +1 -1
  7. package/cjs/react-dom-test-utils.production.min.js +1 -1
  8. package/cjs/react-dom-unstable-fire.development.js +224 -66
  9. package/cjs/react-dom-unstable-fire.production.min.js +2 -2
  10. package/cjs/react-dom-unstable-fire.profiling.min.js +2 -2
  11. package/cjs/react-dom-unstable-fizz.browser.development.js +1 -1
  12. package/cjs/react-dom-unstable-fizz.browser.production.min.js +1 -1
  13. package/cjs/react-dom-unstable-fizz.node.development.js +1 -1
  14. package/cjs/react-dom-unstable-fizz.node.production.min.js +1 -1
  15. package/cjs/react-dom-unstable-native-dependencies.development.js +1 -1
  16. package/cjs/react-dom-unstable-native-dependencies.production.min.js +1 -1
  17. package/cjs/react-dom.development.js +224 -66
  18. package/cjs/react-dom.production.min.js +2 -2
  19. package/cjs/react-dom.profiling.min.js +2 -2
  20. package/package.json +2 -2
  21. package/umd/react-dom-server.browser.development.js +2 -2
  22. package/umd/react-dom-server.browser.production.min.js +2 -2
  23. package/umd/react-dom-test-utils.development.js +1 -1
  24. package/umd/react-dom-test-utils.production.min.js +1 -1
  25. package/umd/react-dom-unstable-fire.development.js +224 -66
  26. package/umd/react-dom-unstable-fire.production.min.js +2 -2
  27. package/umd/react-dom-unstable-fire.profiling.min.js +2 -2
  28. package/umd/react-dom-unstable-fizz.browser.development.js +1 -1
  29. package/umd/react-dom-unstable-fizz.browser.production.min.js +1 -1
  30. package/umd/react-dom-unstable-native-dependencies.development.js +1 -1
  31. package/umd/react-dom-unstable-native-dependencies.production.min.js +1 -1
  32. package/umd/react-dom.development.js +224 -66
  33. package/umd/react-dom.production.min.js +2 -2
  34. package/umd/react-dom.profiling.min.js +2 -2
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom-unstable-fizz.browser.production.min.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom-unstable-native-dependencies.development.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom-unstable-native-dependencies.production.min.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom.development.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -10123,6 +10123,7 @@ function FiberNode(tag, pendingProps, key, mode) {
10123
10123
  this._debugSource = null;
10124
10124
  this._debugOwner = null;
10125
10125
  this._debugIsCurrentlyTiming = false;
10126
+ this._debugHookTypes = null;
10126
10127
  if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {
10127
10128
  Object.preventExtensions(this);
10128
10129
  }
@@ -10190,6 +10191,7 @@ function createWorkInProgress(current, pendingProps, expirationTime) {
10190
10191
  workInProgress._debugID = current._debugID;
10191
10192
  workInProgress._debugSource = current._debugSource;
10192
10193
  workInProgress._debugOwner = current._debugOwner;
10194
+ workInProgress._debugHookTypes = current._debugHookTypes;
10193
10195
  }
10194
10196
 
10195
10197
  workInProgress.alternate = current;
@@ -10457,6 +10459,7 @@ function assignFiberPropertiesInDEV(target, source) {
10457
10459
  target._debugSource = source._debugSource;
10458
10460
  target._debugOwner = source._debugOwner;
10459
10461
  target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;
10462
+ target._debugHookTypes = source._debugHookTypes;
10460
10463
  return target;
10461
10464
  }
10462
10465
 
@@ -12855,7 +12858,6 @@ var currentlyRenderingFiber$1 = null;
12855
12858
  // current hook list is the list that belongs to the current fiber. The
12856
12859
  // work-in-progress hook list is a new list that will be added to the
12857
12860
  // work-in-progress fiber.
12858
- var firstCurrentHook = null;
12859
12861
  var currentHook = null;
12860
12862
  var nextCurrentHook = null;
12861
12863
  var firstWorkInProgressHook = null;
@@ -12885,39 +12887,67 @@ var RE_RENDER_LIMIT = 25;
12885
12887
  // In DEV, this is the name of the currently executing primitive hook
12886
12888
  var currentHookNameInDev = null;
12887
12889
 
12888
- function warnOnHookMismatchInDev() {
12890
+ // In DEV, this list ensures that hooks are called in the same order between renders.
12891
+ // The list stores the order of hooks used during the initial render (mount).
12892
+ // Subsequent renders (updates) reference this list.
12893
+ var hookTypesDev = null;
12894
+ var hookTypesUpdateIndexDev = -1;
12895
+
12896
+ function mountHookTypesDev() {
12897
+ {
12898
+ var hookName = currentHookNameInDev;
12899
+
12900
+ if (hookTypesDev === null) {
12901
+ hookTypesDev = [hookName];
12902
+ } else {
12903
+ hookTypesDev.push(hookName);
12904
+ }
12905
+ }
12906
+ }
12907
+
12908
+ function updateHookTypesDev() {
12909
+ {
12910
+ var hookName = currentHookNameInDev;
12911
+
12912
+ if (hookTypesDev !== null) {
12913
+ hookTypesUpdateIndexDev++;
12914
+ if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {
12915
+ warnOnHookMismatchInDev(hookName);
12916
+ }
12917
+ }
12918
+ }
12919
+ }
12920
+
12921
+ function warnOnHookMismatchInDev(currentHookName) {
12889
12922
  {
12890
12923
  var componentName = getComponentName(currentlyRenderingFiber$1.type);
12891
12924
  if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {
12892
12925
  didWarnAboutMismatchedHooksForComponent.add(componentName);
12893
12926
 
12894
- var secondColumnStart = 22;
12927
+ if (hookTypesDev !== null) {
12928
+ var table = '';
12895
12929
 
12896
- var table = '';
12897
- var prevHook = firstCurrentHook;
12898
- var nextHook = firstWorkInProgressHook;
12899
- var n = 1;
12900
- while (prevHook !== null && nextHook !== null) {
12901
- var oldHookName = prevHook._debugType;
12902
- var newHookName = nextHook._debugType;
12930
+ var secondColumnStart = 30;
12903
12931
 
12904
- var row = n + '. ' + oldHookName;
12932
+ for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {
12933
+ var oldHookName = hookTypesDev[i];
12934
+ var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;
12905
12935
 
12906
- // Extra space so second column lines up
12907
- // lol @ IE not supporting String#repeat
12908
- while (row.length < secondColumnStart) {
12909
- row += ' ';
12910
- }
12936
+ var row = i + 1 + '. ' + oldHookName;
12911
12937
 
12912
- row += newHookName + '\n';
12938
+ // Extra space so second column lines up
12939
+ // lol @ IE not supporting String#repeat
12940
+ while (row.length < secondColumnStart) {
12941
+ row += ' ';
12942
+ }
12913
12943
 
12914
- table += row;
12915
- prevHook = prevHook.next;
12916
- nextHook = nextHook.next;
12917
- n++;
12918
- }
12944
+ row += newHookName + '\n';
12945
+
12946
+ table += row;
12947
+ }
12919
12948
 
12920
- warning$1(false, 'React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://fb.me/rules-of-hooks\n\n' + ' Previous render Next render\n' + ' -------------------------------\n' + '%s' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', componentName, table);
12949
+ warning$1(false, 'React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://fb.me/rules-of-hooks\n\n' + ' Previous render Next render\n' + ' ------------------------------------------------------\n' + '%s' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n', componentName, table);
12950
+ }
12921
12951
  }
12922
12952
  }
12923
12953
  }
@@ -12953,7 +12983,12 @@ function areHookInputsEqual(nextDeps, prevDeps) {
12953
12983
  function renderWithHooks(current, workInProgress, Component, props, refOrContext, nextRenderExpirationTime) {
12954
12984
  renderExpirationTime = nextRenderExpirationTime;
12955
12985
  currentlyRenderingFiber$1 = workInProgress;
12956
- firstCurrentHook = nextCurrentHook = current !== null ? current.memoizedState : null;
12986
+ nextCurrentHook = current !== null ? current.memoizedState : null;
12987
+
12988
+ {
12989
+ hookTypesDev = current !== null ? current._debugHookTypes : null;
12990
+ hookTypesUpdateIndexDev = -1;
12991
+ }
12957
12992
 
12958
12993
  // The following should have already been reset
12959
12994
  // currentHook = null;
@@ -12967,8 +13002,26 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
12967
13002
  // numberOfReRenders = 0;
12968
13003
  // sideEffectTag = 0;
12969
13004
 
13005
+ // TODO Warn if no hooks are used at all during mount, then some are used during update.
13006
+ // Currently we will identify the update render as a mount because nextCurrentHook === null.
13007
+ // This is tricky because it's valid for certain types of components (e.g. React.lazy)
13008
+
13009
+ // Using nextCurrentHook to differentiate between mount/update only works if at least one stateful hook is used.
13010
+ // Non-stateful hooks (e.g. context) don't get added to memoizedState,
13011
+ // so nextCurrentHook would be null during updates and mounts.
12970
13012
  {
12971
- ReactCurrentDispatcher$1.current = nextCurrentHook === null ? HooksDispatcherOnMountInDEV : HooksDispatcherOnUpdateInDEV;
13013
+ if (nextCurrentHook !== null) {
13014
+ ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;
13015
+ } else if (hookTypesDev !== null) {
13016
+ // This dispatcher handles an edge case where a component is updating,
13017
+ // but no stateful hooks have been used.
13018
+ // We want to match the production code behavior (which will use HooksDispatcherOnMount),
13019
+ // but with the extra DEV validation to ensure hooks ordering hasn't changed.
13020
+ // This dispatcher does that.
13021
+ ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;
13022
+ } else {
13023
+ ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;
13024
+ }
12972
13025
  }
12973
13026
 
12974
13027
  var children = Component(props, refOrContext);
@@ -12979,13 +13032,18 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
12979
13032
  numberOfReRenders += 1;
12980
13033
 
12981
13034
  // Start over from the beginning of the list
12982
- firstCurrentHook = nextCurrentHook = current !== null ? current.memoizedState : null;
13035
+ nextCurrentHook = current !== null ? current.memoizedState : null;
12983
13036
  nextWorkInProgressHook = firstWorkInProgressHook;
12984
13037
 
12985
13038
  currentHook = null;
12986
13039
  workInProgressHook = null;
12987
13040
  componentUpdateQueue = null;
12988
13041
 
13042
+ {
13043
+ // Also validate hook order for cascading updates.
13044
+ hookTypesUpdateIndexDev = -1;
13045
+ }
13046
+
12989
13047
  ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;
12990
13048
 
12991
13049
  children = Component(props, refOrContext);
@@ -12995,10 +13053,6 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
12995
13053
  numberOfReRenders = 0;
12996
13054
  }
12997
13055
 
12998
- {
12999
- currentHookNameInDev = null;
13000
- }
13001
-
13002
13056
  // We can assume the previous dispatcher is always this one, since we set it
13003
13057
  // at the beginning of the render phase and there's no re-entrancy.
13004
13058
  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;
@@ -13010,18 +13064,29 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
13010
13064
  renderedWork.updateQueue = componentUpdateQueue;
13011
13065
  renderedWork.effectTag |= sideEffectTag;
13012
13066
 
13067
+ {
13068
+ renderedWork._debugHookTypes = hookTypesDev;
13069
+ }
13070
+
13071
+ // This check uses currentHook so that it works the same in DEV and prod bundles.
13072
+ // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.
13013
13073
  var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;
13014
13074
 
13015
13075
  renderExpirationTime = NoWork;
13016
13076
  currentlyRenderingFiber$1 = null;
13017
13077
 
13018
- firstCurrentHook = null;
13019
13078
  currentHook = null;
13020
13079
  nextCurrentHook = null;
13021
13080
  firstWorkInProgressHook = null;
13022
13081
  workInProgressHook = null;
13023
13082
  nextWorkInProgressHook = null;
13024
13083
 
13084
+ {
13085
+ currentHookNameInDev = null;
13086
+ hookTypesDev = null;
13087
+ hookTypesUpdateIndexDev = -1;
13088
+ }
13089
+
13025
13090
  remainingExpirationTime = NoWork;
13026
13091
  componentUpdateQueue = null;
13027
13092
  sideEffectTag = 0;
@@ -13055,21 +13120,23 @@ function resetHooks() {
13055
13120
  renderExpirationTime = NoWork;
13056
13121
  currentlyRenderingFiber$1 = null;
13057
13122
 
13058
- firstCurrentHook = null;
13059
13123
  currentHook = null;
13060
13124
  nextCurrentHook = null;
13061
13125
  firstWorkInProgressHook = null;
13062
13126
  workInProgressHook = null;
13063
13127
  nextWorkInProgressHook = null;
13064
13128
 
13065
- remainingExpirationTime = NoWork;
13066
- componentUpdateQueue = null;
13067
- sideEffectTag = 0;
13068
-
13069
13129
  {
13130
+ hookTypesDev = null;
13131
+ hookTypesUpdateIndexDev = -1;
13132
+
13070
13133
  currentHookNameInDev = null;
13071
13134
  }
13072
13135
 
13136
+ remainingExpirationTime = NoWork;
13137
+ componentUpdateQueue = null;
13138
+ sideEffectTag = 0;
13139
+
13073
13140
  didScheduleRenderPhaseUpdate = false;
13074
13141
  renderPhaseUpdates = null;
13075
13142
  numberOfReRenders = 0;
@@ -13086,9 +13153,6 @@ function mountWorkInProgressHook() {
13086
13153
  next: null
13087
13154
  };
13088
13155
 
13089
- {
13090
- hook._debugType = currentHookNameInDev;
13091
- }
13092
13156
  if (workInProgressHook === null) {
13093
13157
  // This is the first hook in the list
13094
13158
  firstWorkInProgressHook = workInProgressHook = hook;
@@ -13135,13 +13199,6 @@ function updateWorkInProgressHook() {
13135
13199
  workInProgressHook = workInProgressHook.next = newHook;
13136
13200
  }
13137
13201
  nextCurrentHook = currentHook.next;
13138
-
13139
- {
13140
- newHook._debugType = currentHookNameInDev;
13141
- if (currentHookNameInDev !== currentHook._debugType) {
13142
- warnOnHookMismatchInDev();
13143
- }
13144
- }
13145
13202
  }
13146
13203
  return workInProgressHook;
13147
13204
  }
@@ -13156,20 +13213,6 @@ function basicStateReducer(state, action) {
13156
13213
  return typeof action === 'function' ? action(state) : action;
13157
13214
  }
13158
13215
 
13159
- function mountContext(context, observedBits) {
13160
- {
13161
- mountWorkInProgressHook();
13162
- }
13163
- return readContext(context, observedBits);
13164
- }
13165
-
13166
- function updateContext(context, observedBits) {
13167
- {
13168
- updateWorkInProgressHook();
13169
- }
13170
- return readContext(context, observedBits);
13171
- }
13172
-
13173
13216
  function mountReducer(reducer, initialArg, init) {
13174
13217
  var hook = mountWorkInProgressHook();
13175
13218
  var initialState = void 0;
@@ -13662,6 +13705,7 @@ var ContextOnlyDispatcher = {
13662
13705
  };
13663
13706
 
13664
13707
  var HooksDispatcherOnMountInDEV = null;
13708
+ var HooksDispatcherOnMountWithHookTypesInDEV = null;
13665
13709
  var HooksDispatcherOnUpdateInDEV = null;
13666
13710
  var InvalidNestedHooksDispatcherOnMountInDEV = null;
13667
13711
  var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
@@ -13681,26 +13725,106 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13681
13725
  },
13682
13726
  useCallback: function (callback, deps) {
13683
13727
  currentHookNameInDev = 'useCallback';
13728
+ mountHookTypesDev();
13729
+ return mountCallback(callback, deps);
13730
+ },
13731
+ useContext: function (context, observedBits) {
13732
+ currentHookNameInDev = 'useContext';
13733
+ mountHookTypesDev();
13734
+ return readContext(context, observedBits);
13735
+ },
13736
+ useEffect: function (create, deps) {
13737
+ currentHookNameInDev = 'useEffect';
13738
+ mountHookTypesDev();
13739
+ return mountEffect(create, deps);
13740
+ },
13741
+ useImperativeHandle: function (ref, create, deps) {
13742
+ currentHookNameInDev = 'useImperativeHandle';
13743
+ mountHookTypesDev();
13744
+ return mountImperativeHandle(ref, create, deps);
13745
+ },
13746
+ useLayoutEffect: function (create, deps) {
13747
+ currentHookNameInDev = 'useLayoutEffect';
13748
+ mountHookTypesDev();
13749
+ return mountLayoutEffect(create, deps);
13750
+ },
13751
+ useMemo: function (create, deps) {
13752
+ currentHookNameInDev = 'useMemo';
13753
+ mountHookTypesDev();
13754
+ var prevDispatcher = ReactCurrentDispatcher$1.current;
13755
+ ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13756
+ try {
13757
+ return mountMemo(create, deps);
13758
+ } finally {
13759
+ ReactCurrentDispatcher$1.current = prevDispatcher;
13760
+ }
13761
+ },
13762
+ useReducer: function (reducer, initialArg, init) {
13763
+ currentHookNameInDev = 'useReducer';
13764
+ mountHookTypesDev();
13765
+ var prevDispatcher = ReactCurrentDispatcher$1.current;
13766
+ ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13767
+ try {
13768
+ return mountReducer(reducer, initialArg, init);
13769
+ } finally {
13770
+ ReactCurrentDispatcher$1.current = prevDispatcher;
13771
+ }
13772
+ },
13773
+ useRef: function (initialValue) {
13774
+ currentHookNameInDev = 'useRef';
13775
+ mountHookTypesDev();
13776
+ return mountRef(initialValue);
13777
+ },
13778
+ useState: function (initialState) {
13779
+ currentHookNameInDev = 'useState';
13780
+ mountHookTypesDev();
13781
+ var prevDispatcher = ReactCurrentDispatcher$1.current;
13782
+ ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13783
+ try {
13784
+ return mountState(initialState);
13785
+ } finally {
13786
+ ReactCurrentDispatcher$1.current = prevDispatcher;
13787
+ }
13788
+ },
13789
+ useDebugValue: function (value, formatterFn) {
13790
+ currentHookNameInDev = 'useDebugValue';
13791
+ mountHookTypesDev();
13792
+ return mountDebugValue(value, formatterFn);
13793
+ }
13794
+ };
13795
+
13796
+ HooksDispatcherOnMountWithHookTypesInDEV = {
13797
+ readContext: function (context, observedBits) {
13798
+ return readContext(context, observedBits);
13799
+ },
13800
+ useCallback: function (callback, deps) {
13801
+ currentHookNameInDev = 'useCallback';
13802
+ updateHookTypesDev();
13684
13803
  return mountCallback(callback, deps);
13685
13804
  },
13686
13805
  useContext: function (context, observedBits) {
13687
13806
  currentHookNameInDev = 'useContext';
13688
- return mountContext(context, observedBits);
13807
+ updateHookTypesDev();
13808
+ return readContext(context, observedBits);
13689
13809
  },
13690
13810
  useEffect: function (create, deps) {
13691
13811
  currentHookNameInDev = 'useEffect';
13812
+ updateHookTypesDev();
13692
13813
  return mountEffect(create, deps);
13693
13814
  },
13694
13815
  useImperativeHandle: function (ref, create, deps) {
13695
13816
  currentHookNameInDev = 'useImperativeHandle';
13817
+ updateHookTypesDev();
13696
13818
  return mountImperativeHandle(ref, create, deps);
13697
13819
  },
13698
13820
  useLayoutEffect: function (create, deps) {
13699
13821
  currentHookNameInDev = 'useLayoutEffect';
13822
+ updateHookTypesDev();
13700
13823
  return mountLayoutEffect(create, deps);
13701
13824
  },
13702
13825
  useMemo: function (create, deps) {
13703
13826
  currentHookNameInDev = 'useMemo';
13827
+ updateHookTypesDev();
13704
13828
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13705
13829
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13706
13830
  try {
@@ -13711,6 +13835,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13711
13835
  },
13712
13836
  useReducer: function (reducer, initialArg, init) {
13713
13837
  currentHookNameInDev = 'useReducer';
13838
+ updateHookTypesDev();
13714
13839
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13715
13840
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13716
13841
  try {
@@ -13721,10 +13846,12 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13721
13846
  },
13722
13847
  useRef: function (initialValue) {
13723
13848
  currentHookNameInDev = 'useRef';
13849
+ updateHookTypesDev();
13724
13850
  return mountRef(initialValue);
13725
13851
  },
13726
13852
  useState: function (initialState) {
13727
13853
  currentHookNameInDev = 'useState';
13854
+ updateHookTypesDev();
13728
13855
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13729
13856
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13730
13857
  try {
@@ -13735,6 +13862,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13735
13862
  },
13736
13863
  useDebugValue: function (value, formatterFn) {
13737
13864
  currentHookNameInDev = 'useDebugValue';
13865
+ updateHookTypesDev();
13738
13866
  return mountDebugValue(value, formatterFn);
13739
13867
  }
13740
13868
  };
@@ -13745,26 +13873,32 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13745
13873
  },
13746
13874
  useCallback: function (callback, deps) {
13747
13875
  currentHookNameInDev = 'useCallback';
13876
+ updateHookTypesDev();
13748
13877
  return updateCallback(callback, deps);
13749
13878
  },
13750
13879
  useContext: function (context, observedBits) {
13751
13880
  currentHookNameInDev = 'useContext';
13752
- return updateContext(context, observedBits);
13881
+ updateHookTypesDev();
13882
+ return readContext(context, observedBits);
13753
13883
  },
13754
13884
  useEffect: function (create, deps) {
13755
13885
  currentHookNameInDev = 'useEffect';
13886
+ updateHookTypesDev();
13756
13887
  return updateEffect(create, deps);
13757
13888
  },
13758
13889
  useImperativeHandle: function (ref, create, deps) {
13759
13890
  currentHookNameInDev = 'useImperativeHandle';
13891
+ updateHookTypesDev();
13760
13892
  return updateImperativeHandle(ref, create, deps);
13761
13893
  },
13762
13894
  useLayoutEffect: function (create, deps) {
13763
13895
  currentHookNameInDev = 'useLayoutEffect';
13896
+ updateHookTypesDev();
13764
13897
  return updateLayoutEffect(create, deps);
13765
13898
  },
13766
13899
  useMemo: function (create, deps) {
13767
13900
  currentHookNameInDev = 'useMemo';
13901
+ updateHookTypesDev();
13768
13902
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13769
13903
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13770
13904
  try {
@@ -13775,6 +13909,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13775
13909
  },
13776
13910
  useReducer: function (reducer, initialArg, init) {
13777
13911
  currentHookNameInDev = 'useReducer';
13912
+ updateHookTypesDev();
13778
13913
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13779
13914
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13780
13915
  try {
@@ -13785,10 +13920,12 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13785
13920
  },
13786
13921
  useRef: function (initialValue) {
13787
13922
  currentHookNameInDev = 'useRef';
13923
+ updateHookTypesDev();
13788
13924
  return updateRef(initialValue);
13789
13925
  },
13790
13926
  useState: function (initialState) {
13791
13927
  currentHookNameInDev = 'useState';
13928
+ updateHookTypesDev();
13792
13929
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13793
13930
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13794
13931
  try {
@@ -13799,6 +13936,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13799
13936
  },
13800
13937
  useDebugValue: function (value, formatterFn) {
13801
13938
  currentHookNameInDev = 'useDebugValue';
13939
+ updateHookTypesDev();
13802
13940
  return updateDebugValue(value, formatterFn);
13803
13941
  }
13804
13942
  };
@@ -13811,31 +13949,37 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13811
13949
  useCallback: function (callback, deps) {
13812
13950
  currentHookNameInDev = 'useCallback';
13813
13951
  warnInvalidHookAccess();
13952
+ mountHookTypesDev();
13814
13953
  return mountCallback(callback, deps);
13815
13954
  },
13816
13955
  useContext: function (context, observedBits) {
13817
13956
  currentHookNameInDev = 'useContext';
13818
13957
  warnInvalidHookAccess();
13819
- return mountContext(context, observedBits);
13958
+ mountHookTypesDev();
13959
+ return readContext(context, observedBits);
13820
13960
  },
13821
13961
  useEffect: function (create, deps) {
13822
13962
  currentHookNameInDev = 'useEffect';
13823
13963
  warnInvalidHookAccess();
13964
+ mountHookTypesDev();
13824
13965
  return mountEffect(create, deps);
13825
13966
  },
13826
13967
  useImperativeHandle: function (ref, create, deps) {
13827
13968
  currentHookNameInDev = 'useImperativeHandle';
13828
13969
  warnInvalidHookAccess();
13970
+ mountHookTypesDev();
13829
13971
  return mountImperativeHandle(ref, create, deps);
13830
13972
  },
13831
13973
  useLayoutEffect: function (create, deps) {
13832
13974
  currentHookNameInDev = 'useLayoutEffect';
13833
13975
  warnInvalidHookAccess();
13976
+ mountHookTypesDev();
13834
13977
  return mountLayoutEffect(create, deps);
13835
13978
  },
13836
13979
  useMemo: function (create, deps) {
13837
13980
  currentHookNameInDev = 'useMemo';
13838
13981
  warnInvalidHookAccess();
13982
+ mountHookTypesDev();
13839
13983
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13840
13984
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13841
13985
  try {
@@ -13847,6 +13991,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13847
13991
  useReducer: function (reducer, initialArg, init) {
13848
13992
  currentHookNameInDev = 'useReducer';
13849
13993
  warnInvalidHookAccess();
13994
+ mountHookTypesDev();
13850
13995
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13851
13996
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13852
13997
  try {
@@ -13858,11 +14003,13 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13858
14003
  useRef: function (initialValue) {
13859
14004
  currentHookNameInDev = 'useRef';
13860
14005
  warnInvalidHookAccess();
14006
+ mountHookTypesDev();
13861
14007
  return mountRef(initialValue);
13862
14008
  },
13863
14009
  useState: function (initialState) {
13864
14010
  currentHookNameInDev = 'useState';
13865
14011
  warnInvalidHookAccess();
14012
+ mountHookTypesDev();
13866
14013
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13867
14014
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13868
14015
  try {
@@ -13874,6 +14021,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13874
14021
  useDebugValue: function (value, formatterFn) {
13875
14022
  currentHookNameInDev = 'useDebugValue';
13876
14023
  warnInvalidHookAccess();
14024
+ mountHookTypesDev();
13877
14025
  return mountDebugValue(value, formatterFn);
13878
14026
  }
13879
14027
  };
@@ -13886,31 +14034,37 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13886
14034
  useCallback: function (callback, deps) {
13887
14035
  currentHookNameInDev = 'useCallback';
13888
14036
  warnInvalidHookAccess();
14037
+ updateHookTypesDev();
13889
14038
  return updateCallback(callback, deps);
13890
14039
  },
13891
14040
  useContext: function (context, observedBits) {
13892
14041
  currentHookNameInDev = 'useContext';
13893
14042
  warnInvalidHookAccess();
13894
- return updateContext(context, observedBits);
14043
+ updateHookTypesDev();
14044
+ return readContext(context, observedBits);
13895
14045
  },
13896
14046
  useEffect: function (create, deps) {
13897
14047
  currentHookNameInDev = 'useEffect';
13898
14048
  warnInvalidHookAccess();
14049
+ updateHookTypesDev();
13899
14050
  return updateEffect(create, deps);
13900
14051
  },
13901
14052
  useImperativeHandle: function (ref, create, deps) {
13902
14053
  currentHookNameInDev = 'useImperativeHandle';
13903
14054
  warnInvalidHookAccess();
14055
+ updateHookTypesDev();
13904
14056
  return updateImperativeHandle(ref, create, deps);
13905
14057
  },
13906
14058
  useLayoutEffect: function (create, deps) {
13907
14059
  currentHookNameInDev = 'useLayoutEffect';
13908
14060
  warnInvalidHookAccess();
14061
+ updateHookTypesDev();
13909
14062
  return updateLayoutEffect(create, deps);
13910
14063
  },
13911
14064
  useMemo: function (create, deps) {
13912
14065
  currentHookNameInDev = 'useMemo';
13913
14066
  warnInvalidHookAccess();
14067
+ updateHookTypesDev();
13914
14068
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13915
14069
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13916
14070
  try {
@@ -13922,6 +14076,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13922
14076
  useReducer: function (reducer, initialArg, init) {
13923
14077
  currentHookNameInDev = 'useReducer';
13924
14078
  warnInvalidHookAccess();
14079
+ updateHookTypesDev();
13925
14080
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13926
14081
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13927
14082
  try {
@@ -13933,11 +14088,13 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13933
14088
  useRef: function (initialValue) {
13934
14089
  currentHookNameInDev = 'useRef';
13935
14090
  warnInvalidHookAccess();
14091
+ updateHookTypesDev();
13936
14092
  return updateRef(initialValue);
13937
14093
  },
13938
14094
  useState: function (initialState) {
13939
14095
  currentHookNameInDev = 'useState';
13940
14096
  warnInvalidHookAccess();
14097
+ updateHookTypesDev();
13941
14098
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13942
14099
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13943
14100
  try {
@@ -13949,6 +14106,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13949
14106
  useDebugValue: function (value, formatterFn) {
13950
14107
  currentHookNameInDev = 'useDebugValue';
13951
14108
  warnInvalidHookAccess();
14109
+ updateHookTypesDev();
13952
14110
  return updateDebugValue(value, formatterFn);
13953
14111
  }
13954
14112
  };
@@ -20683,7 +20841,7 @@ implementation) {
20683
20841
 
20684
20842
  // TODO: this is special because it gets imported during build.
20685
20843
 
20686
- var ReactVersion = '16.8.3';
20844
+ var ReactVersion = '16.8.4';
20687
20845
 
20688
20846
  // TODO: This type is shared between the reconciler and ReactDOM, but will
20689
20847
  // eventually be lifted out to the renderer.
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom.production.min.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -217,4 +217,4 @@ c=new mb;a=void 0===a?null:a;null!==a&&c.then(a);xe(null,b,null,c._onCommit);ret
217
217
  (function(a,b,c){Ye=a;yf=b;Ze=c})(Zg,ah,function(){w||0===oa||(Z(oa,!1),oa=0)});var oh={createPortal:ch,findDOMNode:function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;void 0===b&&("function"===typeof a.render?n("188"):n("268",Object.keys(a)));a=tf(b);a=null===a?null:a.stateNode;return a},hydrate:function(a,b,c){ob(b)?void 0:n("200");return Wc(null,a,b,!0,c)},render:function(a,b,c){ob(b)?void 0:n("200");return Wc(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,
218
218
  b,c,d){ob(c)?void 0:n("200");null==a||void 0===a._reactInternalFiber?n("38"):void 0;return Wc(a,b,c,!1,d)},unmountComponentAtNode:function(a){ob(a)?void 0:n("40");return a._reactRootContainer?($g(function(){Wc(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:function(){return ch.apply(void 0,arguments)},unstable_batchedUpdates:Zg,unstable_interactiveUpdates:ah,flushSync:function(a,b){w?n("187"):void 0;var c=z;z=!0;try{return Tg(a,b)}finally{z=c,Z(1073741823,!1)}},
219
219
  unstable_createRoot:function(a,b){ob(a)?void 0:n("299","unstable_createRoot");return new nb(a,!0,null!=b&&!0===b.hydrate)},unstable_flushControlled:function(a){var b=z;z=!0;try{Tg(a)}finally{(z=b)||w||Z(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[Je,Da,dd,Ae.injectEventPluginsByName,Zc,Qa,function(a){ad(a,xh)},Ve,We,oc,cd]}};(function(a){var b=a.findFiberByHostInstance;return ai(B({},a,{overrideProps:null,currentDispatcherRef:Ma.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=
220
- tf(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))})({findFiberByHostInstance:dc,bundleType:0,version:"16.8.3",rendererPackageName:"react-dom"});var ph={default:oh},qh=ph&&oh||ph;return qh.default||qh});
220
+ tf(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))})({findFiberByHostInstance:dc,bundleType:0,version:"16.8.4",rendererPackageName:"react-dom"});var ph={default:oh},qh=ph&&oh||ph;return qh.default||qh});