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-fire.development.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -10127,6 +10127,7 @@ function FiberNode(tag, pendingProps, key, mode) {
10127
10127
  this._debugSource = null;
10128
10128
  this._debugOwner = null;
10129
10129
  this._debugIsCurrentlyTiming = false;
10130
+ this._debugHookTypes = null;
10130
10131
  if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {
10131
10132
  Object.preventExtensions(this);
10132
10133
  }
@@ -10194,6 +10195,7 @@ function createWorkInProgress(current, pendingProps, expirationTime) {
10194
10195
  workInProgress._debugID = current._debugID;
10195
10196
  workInProgress._debugSource = current._debugSource;
10196
10197
  workInProgress._debugOwner = current._debugOwner;
10198
+ workInProgress._debugHookTypes = current._debugHookTypes;
10197
10199
  }
10198
10200
 
10199
10201
  workInProgress.alternate = current;
@@ -10461,6 +10463,7 @@ function assignFiberPropertiesInDEV(target, source) {
10461
10463
  target._debugSource = source._debugSource;
10462
10464
  target._debugOwner = source._debugOwner;
10463
10465
  target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;
10466
+ target._debugHookTypes = source._debugHookTypes;
10464
10467
  return target;
10465
10468
  }
10466
10469
 
@@ -12859,7 +12862,6 @@ var currentlyRenderingFiber$1 = null;
12859
12862
  // current hook list is the list that belongs to the current fiber. The
12860
12863
  // work-in-progress hook list is a new list that will be added to the
12861
12864
  // work-in-progress fiber.
12862
- var firstCurrentHook = null;
12863
12865
  var currentHook = null;
12864
12866
  var nextCurrentHook = null;
12865
12867
  var firstWorkInProgressHook = null;
@@ -12889,39 +12891,67 @@ var RE_RENDER_LIMIT = 25;
12889
12891
  // In DEV, this is the name of the currently executing primitive hook
12890
12892
  var currentHookNameInDev = null;
12891
12893
 
12892
- function warnOnHookMismatchInDev() {
12894
+ // In DEV, this list ensures that hooks are called in the same order between renders.
12895
+ // The list stores the order of hooks used during the initial render (mount).
12896
+ // Subsequent renders (updates) reference this list.
12897
+ var hookTypesDev = null;
12898
+ var hookTypesUpdateIndexDev = -1;
12899
+
12900
+ function mountHookTypesDev() {
12901
+ {
12902
+ var hookName = currentHookNameInDev;
12903
+
12904
+ if (hookTypesDev === null) {
12905
+ hookTypesDev = [hookName];
12906
+ } else {
12907
+ hookTypesDev.push(hookName);
12908
+ }
12909
+ }
12910
+ }
12911
+
12912
+ function updateHookTypesDev() {
12913
+ {
12914
+ var hookName = currentHookNameInDev;
12915
+
12916
+ if (hookTypesDev !== null) {
12917
+ hookTypesUpdateIndexDev++;
12918
+ if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {
12919
+ warnOnHookMismatchInDev(hookName);
12920
+ }
12921
+ }
12922
+ }
12923
+ }
12924
+
12925
+ function warnOnHookMismatchInDev(currentHookName) {
12893
12926
  {
12894
12927
  var componentName = getComponentName(currentlyRenderingFiber$1.type);
12895
12928
  if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {
12896
12929
  didWarnAboutMismatchedHooksForComponent.add(componentName);
12897
12930
 
12898
- var secondColumnStart = 22;
12931
+ if (hookTypesDev !== null) {
12932
+ var table = '';
12899
12933
 
12900
- var table = '';
12901
- var prevHook = firstCurrentHook;
12902
- var nextHook = firstWorkInProgressHook;
12903
- var n = 1;
12904
- while (prevHook !== null && nextHook !== null) {
12905
- var oldHookName = prevHook._debugType;
12906
- var newHookName = nextHook._debugType;
12934
+ var secondColumnStart = 30;
12907
12935
 
12908
- var row = n + '. ' + oldHookName;
12936
+ for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {
12937
+ var oldHookName = hookTypesDev[i];
12938
+ var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;
12909
12939
 
12910
- // Extra space so second column lines up
12911
- // lol @ IE not supporting String#repeat
12912
- while (row.length < secondColumnStart) {
12913
- row += ' ';
12914
- }
12940
+ var row = i + 1 + '. ' + oldHookName;
12915
12941
 
12916
- row += newHookName + '\n';
12942
+ // Extra space so second column lines up
12943
+ // lol @ IE not supporting String#repeat
12944
+ while (row.length < secondColumnStart) {
12945
+ row += ' ';
12946
+ }
12917
12947
 
12918
- table += row;
12919
- prevHook = prevHook.next;
12920
- nextHook = nextHook.next;
12921
- n++;
12922
- }
12948
+ row += newHookName + '\n';
12949
+
12950
+ table += row;
12951
+ }
12923
12952
 
12924
- 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);
12953
+ 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);
12954
+ }
12925
12955
  }
12926
12956
  }
12927
12957
  }
@@ -12957,7 +12987,12 @@ function areHookInputsEqual(nextDeps, prevDeps) {
12957
12987
  function renderWithHooks(current, workInProgress, Component, props, refOrContext, nextRenderExpirationTime) {
12958
12988
  renderExpirationTime = nextRenderExpirationTime;
12959
12989
  currentlyRenderingFiber$1 = workInProgress;
12960
- firstCurrentHook = nextCurrentHook = current !== null ? current.memoizedState : null;
12990
+ nextCurrentHook = current !== null ? current.memoizedState : null;
12991
+
12992
+ {
12993
+ hookTypesDev = current !== null ? current._debugHookTypes : null;
12994
+ hookTypesUpdateIndexDev = -1;
12995
+ }
12961
12996
 
12962
12997
  // The following should have already been reset
12963
12998
  // currentHook = null;
@@ -12971,8 +13006,26 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
12971
13006
  // numberOfReRenders = 0;
12972
13007
  // sideEffectTag = 0;
12973
13008
 
13009
+ // TODO Warn if no hooks are used at all during mount, then some are used during update.
13010
+ // Currently we will identify the update render as a mount because nextCurrentHook === null.
13011
+ // This is tricky because it's valid for certain types of components (e.g. React.lazy)
13012
+
13013
+ // Using nextCurrentHook to differentiate between mount/update only works if at least one stateful hook is used.
13014
+ // Non-stateful hooks (e.g. context) don't get added to memoizedState,
13015
+ // so nextCurrentHook would be null during updates and mounts.
12974
13016
  {
12975
- ReactCurrentDispatcher$1.current = nextCurrentHook === null ? HooksDispatcherOnMountInDEV : HooksDispatcherOnUpdateInDEV;
13017
+ if (nextCurrentHook !== null) {
13018
+ ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;
13019
+ } else if (hookTypesDev !== null) {
13020
+ // This dispatcher handles an edge case where a component is updating,
13021
+ // but no stateful hooks have been used.
13022
+ // We want to match the production code behavior (which will use HooksDispatcherOnMount),
13023
+ // but with the extra DEV validation to ensure hooks ordering hasn't changed.
13024
+ // This dispatcher does that.
13025
+ ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;
13026
+ } else {
13027
+ ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;
13028
+ }
12976
13029
  }
12977
13030
 
12978
13031
  var children = Component(props, refOrContext);
@@ -12983,13 +13036,18 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
12983
13036
  numberOfReRenders += 1;
12984
13037
 
12985
13038
  // Start over from the beginning of the list
12986
- firstCurrentHook = nextCurrentHook = current !== null ? current.memoizedState : null;
13039
+ nextCurrentHook = current !== null ? current.memoizedState : null;
12987
13040
  nextWorkInProgressHook = firstWorkInProgressHook;
12988
13041
 
12989
13042
  currentHook = null;
12990
13043
  workInProgressHook = null;
12991
13044
  componentUpdateQueue = null;
12992
13045
 
13046
+ {
13047
+ // Also validate hook order for cascading updates.
13048
+ hookTypesUpdateIndexDev = -1;
13049
+ }
13050
+
12993
13051
  ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;
12994
13052
 
12995
13053
  children = Component(props, refOrContext);
@@ -12999,10 +13057,6 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
12999
13057
  numberOfReRenders = 0;
13000
13058
  }
13001
13059
 
13002
- {
13003
- currentHookNameInDev = null;
13004
- }
13005
-
13006
13060
  // We can assume the previous dispatcher is always this one, since we set it
13007
13061
  // at the beginning of the render phase and there's no re-entrancy.
13008
13062
  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;
@@ -13014,18 +13068,29 @@ function renderWithHooks(current, workInProgress, Component, props, refOrContext
13014
13068
  renderedWork.updateQueue = componentUpdateQueue;
13015
13069
  renderedWork.effectTag |= sideEffectTag;
13016
13070
 
13071
+ {
13072
+ renderedWork._debugHookTypes = hookTypesDev;
13073
+ }
13074
+
13075
+ // This check uses currentHook so that it works the same in DEV and prod bundles.
13076
+ // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.
13017
13077
  var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;
13018
13078
 
13019
13079
  renderExpirationTime = NoWork;
13020
13080
  currentlyRenderingFiber$1 = null;
13021
13081
 
13022
- firstCurrentHook = null;
13023
13082
  currentHook = null;
13024
13083
  nextCurrentHook = null;
13025
13084
  firstWorkInProgressHook = null;
13026
13085
  workInProgressHook = null;
13027
13086
  nextWorkInProgressHook = null;
13028
13087
 
13088
+ {
13089
+ currentHookNameInDev = null;
13090
+ hookTypesDev = null;
13091
+ hookTypesUpdateIndexDev = -1;
13092
+ }
13093
+
13029
13094
  remainingExpirationTime = NoWork;
13030
13095
  componentUpdateQueue = null;
13031
13096
  sideEffectTag = 0;
@@ -13059,21 +13124,23 @@ function resetHooks() {
13059
13124
  renderExpirationTime = NoWork;
13060
13125
  currentlyRenderingFiber$1 = null;
13061
13126
 
13062
- firstCurrentHook = null;
13063
13127
  currentHook = null;
13064
13128
  nextCurrentHook = null;
13065
13129
  firstWorkInProgressHook = null;
13066
13130
  workInProgressHook = null;
13067
13131
  nextWorkInProgressHook = null;
13068
13132
 
13069
- remainingExpirationTime = NoWork;
13070
- componentUpdateQueue = null;
13071
- sideEffectTag = 0;
13072
-
13073
13133
  {
13134
+ hookTypesDev = null;
13135
+ hookTypesUpdateIndexDev = -1;
13136
+
13074
13137
  currentHookNameInDev = null;
13075
13138
  }
13076
13139
 
13140
+ remainingExpirationTime = NoWork;
13141
+ componentUpdateQueue = null;
13142
+ sideEffectTag = 0;
13143
+
13077
13144
  didScheduleRenderPhaseUpdate = false;
13078
13145
  renderPhaseUpdates = null;
13079
13146
  numberOfReRenders = 0;
@@ -13090,9 +13157,6 @@ function mountWorkInProgressHook() {
13090
13157
  next: null
13091
13158
  };
13092
13159
 
13093
- {
13094
- hook._debugType = currentHookNameInDev;
13095
- }
13096
13160
  if (workInProgressHook === null) {
13097
13161
  // This is the first hook in the list
13098
13162
  firstWorkInProgressHook = workInProgressHook = hook;
@@ -13139,13 +13203,6 @@ function updateWorkInProgressHook() {
13139
13203
  workInProgressHook = workInProgressHook.next = newHook;
13140
13204
  }
13141
13205
  nextCurrentHook = currentHook.next;
13142
-
13143
- {
13144
- newHook._debugType = currentHookNameInDev;
13145
- if (currentHookNameInDev !== currentHook._debugType) {
13146
- warnOnHookMismatchInDev();
13147
- }
13148
- }
13149
13206
  }
13150
13207
  return workInProgressHook;
13151
13208
  }
@@ -13160,20 +13217,6 @@ function basicStateReducer(state, action) {
13160
13217
  return typeof action === 'function' ? action(state) : action;
13161
13218
  }
13162
13219
 
13163
- function mountContext(context, observedBits) {
13164
- {
13165
- mountWorkInProgressHook();
13166
- }
13167
- return readContext(context, observedBits);
13168
- }
13169
-
13170
- function updateContext(context, observedBits) {
13171
- {
13172
- updateWorkInProgressHook();
13173
- }
13174
- return readContext(context, observedBits);
13175
- }
13176
-
13177
13220
  function mountReducer(reducer, initialArg, init) {
13178
13221
  var hook = mountWorkInProgressHook();
13179
13222
  var initialState = void 0;
@@ -13666,6 +13709,7 @@ var ContextOnlyDispatcher = {
13666
13709
  };
13667
13710
 
13668
13711
  var HooksDispatcherOnMountInDEV = null;
13712
+ var HooksDispatcherOnMountWithHookTypesInDEV = null;
13669
13713
  var HooksDispatcherOnUpdateInDEV = null;
13670
13714
  var InvalidNestedHooksDispatcherOnMountInDEV = null;
13671
13715
  var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
@@ -13685,26 +13729,106 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13685
13729
  },
13686
13730
  useCallback: function (callback, deps) {
13687
13731
  currentHookNameInDev = 'useCallback';
13732
+ mountHookTypesDev();
13733
+ return mountCallback(callback, deps);
13734
+ },
13735
+ useContext: function (context, observedBits) {
13736
+ currentHookNameInDev = 'useContext';
13737
+ mountHookTypesDev();
13738
+ return readContext(context, observedBits);
13739
+ },
13740
+ useEffect: function (create, deps) {
13741
+ currentHookNameInDev = 'useEffect';
13742
+ mountHookTypesDev();
13743
+ return mountEffect(create, deps);
13744
+ },
13745
+ useImperativeHandle: function (ref, create, deps) {
13746
+ currentHookNameInDev = 'useImperativeHandle';
13747
+ mountHookTypesDev();
13748
+ return mountImperativeHandle(ref, create, deps);
13749
+ },
13750
+ useLayoutEffect: function (create, deps) {
13751
+ currentHookNameInDev = 'useLayoutEffect';
13752
+ mountHookTypesDev();
13753
+ return mountLayoutEffect(create, deps);
13754
+ },
13755
+ useMemo: function (create, deps) {
13756
+ currentHookNameInDev = 'useMemo';
13757
+ mountHookTypesDev();
13758
+ var prevDispatcher = ReactCurrentDispatcher$1.current;
13759
+ ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13760
+ try {
13761
+ return mountMemo(create, deps);
13762
+ } finally {
13763
+ ReactCurrentDispatcher$1.current = prevDispatcher;
13764
+ }
13765
+ },
13766
+ useReducer: function (reducer, initialArg, init) {
13767
+ currentHookNameInDev = 'useReducer';
13768
+ mountHookTypesDev();
13769
+ var prevDispatcher = ReactCurrentDispatcher$1.current;
13770
+ ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13771
+ try {
13772
+ return mountReducer(reducer, initialArg, init);
13773
+ } finally {
13774
+ ReactCurrentDispatcher$1.current = prevDispatcher;
13775
+ }
13776
+ },
13777
+ useRef: function (initialValue) {
13778
+ currentHookNameInDev = 'useRef';
13779
+ mountHookTypesDev();
13780
+ return mountRef(initialValue);
13781
+ },
13782
+ useState: function (initialState) {
13783
+ currentHookNameInDev = 'useState';
13784
+ mountHookTypesDev();
13785
+ var prevDispatcher = ReactCurrentDispatcher$1.current;
13786
+ ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13787
+ try {
13788
+ return mountState(initialState);
13789
+ } finally {
13790
+ ReactCurrentDispatcher$1.current = prevDispatcher;
13791
+ }
13792
+ },
13793
+ useDebugValue: function (value, formatterFn) {
13794
+ currentHookNameInDev = 'useDebugValue';
13795
+ mountHookTypesDev();
13796
+ return mountDebugValue(value, formatterFn);
13797
+ }
13798
+ };
13799
+
13800
+ HooksDispatcherOnMountWithHookTypesInDEV = {
13801
+ readContext: function (context, observedBits) {
13802
+ return readContext(context, observedBits);
13803
+ },
13804
+ useCallback: function (callback, deps) {
13805
+ currentHookNameInDev = 'useCallback';
13806
+ updateHookTypesDev();
13688
13807
  return mountCallback(callback, deps);
13689
13808
  },
13690
13809
  useContext: function (context, observedBits) {
13691
13810
  currentHookNameInDev = 'useContext';
13692
- return mountContext(context, observedBits);
13811
+ updateHookTypesDev();
13812
+ return readContext(context, observedBits);
13693
13813
  },
13694
13814
  useEffect: function (create, deps) {
13695
13815
  currentHookNameInDev = 'useEffect';
13816
+ updateHookTypesDev();
13696
13817
  return mountEffect(create, deps);
13697
13818
  },
13698
13819
  useImperativeHandle: function (ref, create, deps) {
13699
13820
  currentHookNameInDev = 'useImperativeHandle';
13821
+ updateHookTypesDev();
13700
13822
  return mountImperativeHandle(ref, create, deps);
13701
13823
  },
13702
13824
  useLayoutEffect: function (create, deps) {
13703
13825
  currentHookNameInDev = 'useLayoutEffect';
13826
+ updateHookTypesDev();
13704
13827
  return mountLayoutEffect(create, deps);
13705
13828
  },
13706
13829
  useMemo: function (create, deps) {
13707
13830
  currentHookNameInDev = 'useMemo';
13831
+ updateHookTypesDev();
13708
13832
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13709
13833
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13710
13834
  try {
@@ -13715,6 +13839,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13715
13839
  },
13716
13840
  useReducer: function (reducer, initialArg, init) {
13717
13841
  currentHookNameInDev = 'useReducer';
13842
+ updateHookTypesDev();
13718
13843
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13719
13844
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13720
13845
  try {
@@ -13725,10 +13850,12 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13725
13850
  },
13726
13851
  useRef: function (initialValue) {
13727
13852
  currentHookNameInDev = 'useRef';
13853
+ updateHookTypesDev();
13728
13854
  return mountRef(initialValue);
13729
13855
  },
13730
13856
  useState: function (initialState) {
13731
13857
  currentHookNameInDev = 'useState';
13858
+ updateHookTypesDev();
13732
13859
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13733
13860
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13734
13861
  try {
@@ -13739,6 +13866,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13739
13866
  },
13740
13867
  useDebugValue: function (value, formatterFn) {
13741
13868
  currentHookNameInDev = 'useDebugValue';
13869
+ updateHookTypesDev();
13742
13870
  return mountDebugValue(value, formatterFn);
13743
13871
  }
13744
13872
  };
@@ -13749,26 +13877,32 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13749
13877
  },
13750
13878
  useCallback: function (callback, deps) {
13751
13879
  currentHookNameInDev = 'useCallback';
13880
+ updateHookTypesDev();
13752
13881
  return updateCallback(callback, deps);
13753
13882
  },
13754
13883
  useContext: function (context, observedBits) {
13755
13884
  currentHookNameInDev = 'useContext';
13756
- return updateContext(context, observedBits);
13885
+ updateHookTypesDev();
13886
+ return readContext(context, observedBits);
13757
13887
  },
13758
13888
  useEffect: function (create, deps) {
13759
13889
  currentHookNameInDev = 'useEffect';
13890
+ updateHookTypesDev();
13760
13891
  return updateEffect(create, deps);
13761
13892
  },
13762
13893
  useImperativeHandle: function (ref, create, deps) {
13763
13894
  currentHookNameInDev = 'useImperativeHandle';
13895
+ updateHookTypesDev();
13764
13896
  return updateImperativeHandle(ref, create, deps);
13765
13897
  },
13766
13898
  useLayoutEffect: function (create, deps) {
13767
13899
  currentHookNameInDev = 'useLayoutEffect';
13900
+ updateHookTypesDev();
13768
13901
  return updateLayoutEffect(create, deps);
13769
13902
  },
13770
13903
  useMemo: function (create, deps) {
13771
13904
  currentHookNameInDev = 'useMemo';
13905
+ updateHookTypesDev();
13772
13906
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13773
13907
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13774
13908
  try {
@@ -13779,6 +13913,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13779
13913
  },
13780
13914
  useReducer: function (reducer, initialArg, init) {
13781
13915
  currentHookNameInDev = 'useReducer';
13916
+ updateHookTypesDev();
13782
13917
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13783
13918
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13784
13919
  try {
@@ -13789,10 +13924,12 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13789
13924
  },
13790
13925
  useRef: function (initialValue) {
13791
13926
  currentHookNameInDev = 'useRef';
13927
+ updateHookTypesDev();
13792
13928
  return updateRef(initialValue);
13793
13929
  },
13794
13930
  useState: function (initialState) {
13795
13931
  currentHookNameInDev = 'useState';
13932
+ updateHookTypesDev();
13796
13933
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13797
13934
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13798
13935
  try {
@@ -13803,6 +13940,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13803
13940
  },
13804
13941
  useDebugValue: function (value, formatterFn) {
13805
13942
  currentHookNameInDev = 'useDebugValue';
13943
+ updateHookTypesDev();
13806
13944
  return updateDebugValue(value, formatterFn);
13807
13945
  }
13808
13946
  };
@@ -13815,31 +13953,37 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13815
13953
  useCallback: function (callback, deps) {
13816
13954
  currentHookNameInDev = 'useCallback';
13817
13955
  warnInvalidHookAccess();
13956
+ mountHookTypesDev();
13818
13957
  return mountCallback(callback, deps);
13819
13958
  },
13820
13959
  useContext: function (context, observedBits) {
13821
13960
  currentHookNameInDev = 'useContext';
13822
13961
  warnInvalidHookAccess();
13823
- return mountContext(context, observedBits);
13962
+ mountHookTypesDev();
13963
+ return readContext(context, observedBits);
13824
13964
  },
13825
13965
  useEffect: function (create, deps) {
13826
13966
  currentHookNameInDev = 'useEffect';
13827
13967
  warnInvalidHookAccess();
13968
+ mountHookTypesDev();
13828
13969
  return mountEffect(create, deps);
13829
13970
  },
13830
13971
  useImperativeHandle: function (ref, create, deps) {
13831
13972
  currentHookNameInDev = 'useImperativeHandle';
13832
13973
  warnInvalidHookAccess();
13974
+ mountHookTypesDev();
13833
13975
  return mountImperativeHandle(ref, create, deps);
13834
13976
  },
13835
13977
  useLayoutEffect: function (create, deps) {
13836
13978
  currentHookNameInDev = 'useLayoutEffect';
13837
13979
  warnInvalidHookAccess();
13980
+ mountHookTypesDev();
13838
13981
  return mountLayoutEffect(create, deps);
13839
13982
  },
13840
13983
  useMemo: function (create, deps) {
13841
13984
  currentHookNameInDev = 'useMemo';
13842
13985
  warnInvalidHookAccess();
13986
+ mountHookTypesDev();
13843
13987
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13844
13988
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13845
13989
  try {
@@ -13851,6 +13995,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13851
13995
  useReducer: function (reducer, initialArg, init) {
13852
13996
  currentHookNameInDev = 'useReducer';
13853
13997
  warnInvalidHookAccess();
13998
+ mountHookTypesDev();
13854
13999
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13855
14000
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13856
14001
  try {
@@ -13862,11 +14007,13 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13862
14007
  useRef: function (initialValue) {
13863
14008
  currentHookNameInDev = 'useRef';
13864
14009
  warnInvalidHookAccess();
14010
+ mountHookTypesDev();
13865
14011
  return mountRef(initialValue);
13866
14012
  },
13867
14013
  useState: function (initialState) {
13868
14014
  currentHookNameInDev = 'useState';
13869
14015
  warnInvalidHookAccess();
14016
+ mountHookTypesDev();
13870
14017
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13871
14018
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;
13872
14019
  try {
@@ -13878,6 +14025,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13878
14025
  useDebugValue: function (value, formatterFn) {
13879
14026
  currentHookNameInDev = 'useDebugValue';
13880
14027
  warnInvalidHookAccess();
14028
+ mountHookTypesDev();
13881
14029
  return mountDebugValue(value, formatterFn);
13882
14030
  }
13883
14031
  };
@@ -13890,31 +14038,37 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13890
14038
  useCallback: function (callback, deps) {
13891
14039
  currentHookNameInDev = 'useCallback';
13892
14040
  warnInvalidHookAccess();
14041
+ updateHookTypesDev();
13893
14042
  return updateCallback(callback, deps);
13894
14043
  },
13895
14044
  useContext: function (context, observedBits) {
13896
14045
  currentHookNameInDev = 'useContext';
13897
14046
  warnInvalidHookAccess();
13898
- return updateContext(context, observedBits);
14047
+ updateHookTypesDev();
14048
+ return readContext(context, observedBits);
13899
14049
  },
13900
14050
  useEffect: function (create, deps) {
13901
14051
  currentHookNameInDev = 'useEffect';
13902
14052
  warnInvalidHookAccess();
14053
+ updateHookTypesDev();
13903
14054
  return updateEffect(create, deps);
13904
14055
  },
13905
14056
  useImperativeHandle: function (ref, create, deps) {
13906
14057
  currentHookNameInDev = 'useImperativeHandle';
13907
14058
  warnInvalidHookAccess();
14059
+ updateHookTypesDev();
13908
14060
  return updateImperativeHandle(ref, create, deps);
13909
14061
  },
13910
14062
  useLayoutEffect: function (create, deps) {
13911
14063
  currentHookNameInDev = 'useLayoutEffect';
13912
14064
  warnInvalidHookAccess();
14065
+ updateHookTypesDev();
13913
14066
  return updateLayoutEffect(create, deps);
13914
14067
  },
13915
14068
  useMemo: function (create, deps) {
13916
14069
  currentHookNameInDev = 'useMemo';
13917
14070
  warnInvalidHookAccess();
14071
+ updateHookTypesDev();
13918
14072
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13919
14073
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13920
14074
  try {
@@ -13926,6 +14080,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13926
14080
  useReducer: function (reducer, initialArg, init) {
13927
14081
  currentHookNameInDev = 'useReducer';
13928
14082
  warnInvalidHookAccess();
14083
+ updateHookTypesDev();
13929
14084
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13930
14085
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13931
14086
  try {
@@ -13937,11 +14092,13 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13937
14092
  useRef: function (initialValue) {
13938
14093
  currentHookNameInDev = 'useRef';
13939
14094
  warnInvalidHookAccess();
14095
+ updateHookTypesDev();
13940
14096
  return updateRef(initialValue);
13941
14097
  },
13942
14098
  useState: function (initialState) {
13943
14099
  currentHookNameInDev = 'useState';
13944
14100
  warnInvalidHookAccess();
14101
+ updateHookTypesDev();
13945
14102
  var prevDispatcher = ReactCurrentDispatcher$1.current;
13946
14103
  ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;
13947
14104
  try {
@@ -13953,6 +14110,7 @@ var InvalidNestedHooksDispatcherOnUpdateInDEV = null;
13953
14110
  useDebugValue: function (value, formatterFn) {
13954
14111
  currentHookNameInDev = 'useDebugValue';
13955
14112
  warnInvalidHookAccess();
14113
+ updateHookTypesDev();
13956
14114
  return updateDebugValue(value, formatterFn);
13957
14115
  }
13958
14116
  };
@@ -20687,7 +20845,7 @@ implementation) {
20687
20845
 
20688
20846
  // TODO: this is special because it gets imported during build.
20689
20847
 
20690
- var ReactVersion = '16.8.3';
20848
+ var ReactVersion = '16.8.4';
20691
20849
 
20692
20850
  // This file is copy paste from ReactDOM with adjusted paths
20693
20851
  // and a different host config import (react-reconciler/inline.fire).
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom-unstable-fire.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});
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom-unstable-fire.profiling.min.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -222,4 +222,4 @@ function(a,b){var c=this._internalRoot,d=new qb;b=void 0===b?null:b;null!==b&&d.
222
222
  c=this._internalRoot,d=c.firstBatch;if(null===d)c.firstBatch=a,a._next=null;else{for(c=null;null!==d&&d._expirationTime>=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};(function(a,b,c){df=a;Ef=b;ef=c})(eh,gh,function(){x||0===qa||(aa(qa,!1),qa=0)});var uh={createPortal:ih,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=zf(b);a=null===a?null:a.stateNode;return a},
223
223
  hydrate:function(a,b,c){sb(b)?void 0:n("200");return $c(null,a,b,!0,c)},render:function(a,b,c){sb(b)?void 0:n("200");return $c(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){sb(c)?void 0:n("200");null==a||void 0===a._reactInternalFiber?n("38"):void 0;return $c(a,b,c,!1,d)},unmountComponentAtNode:function(a){sb(a)?void 0:n("40");return a._reactRootContainer?(fh(function(){$c(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:function(){return ih.apply(void 0,
224
224
  arguments)},unstable_batchedUpdates:eh,unstable_interactiveUpdates:gh,flushSync:function(a,b){x?n("187"):void 0;var c=y;y=!0;try{return Zg(a,b)}finally{y=c,aa(1073741823,!1)}},unstable_createRoot:function(a,b){sb(a)?void 0:n("299","unstable_createRoot");return new rb(a,!0,null!=b&&!0===b.hydrate)},unstable_flushControlled:function(a){var b=y;y=!0;try{Zg(a)}finally{(y=b)||x||aa(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[Pe,Fa,id,Ge.injectEventPluginsByName,dd,Ua,function(a){fd(a,
225
- Dh)},af,bf,sc,hd]}};(function(a){var b=a.findFiberByHostInstance;return gi(z({},a,{overrideProps:null,currentDispatcherRef:Qa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=zf(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))})({findFiberByHostInstance:hc,bundleType:0,version:"16.8.3",rendererPackageName:"react-dom"});var vh={default:uh},wh=vh&&uh||vh;return wh.default||wh});
225
+ Dh)},af,bf,sc,hd]}};(function(a){var b=a.findFiberByHostInstance;return gi(z({},a,{overrideProps:null,currentDispatcherRef:Qa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=zf(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))})({findFiberByHostInstance:hc,bundleType:0,version:"16.8.4",rendererPackageName:"react-dom"});var vh={default:uh},wh=vh&&uh||vh;return wh.default||wh});
@@ -1,4 +1,4 @@
1
- /** @license React v16.8.3
1
+ /** @license React v16.8.4
2
2
  * react-dom-unstable-fizz.browser.development.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.