downshift 9.0.12 → 9.0.13

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.
@@ -1830,19 +1830,17 @@ function getHighlightedIndexOnOpen(props, state, offset) {
1830
1830
  * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
1831
1831
  * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
1832
1832
  */
1833
- function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {
1833
+ function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
1834
1834
  var mouseAndTouchTrackersRef = React.useRef({
1835
1835
  isMouseDown: false,
1836
1836
  isTouchMove: false,
1837
1837
  isTouchEnd: false
1838
1838
  });
1839
-
1840
- // the elements should be retrieved the moment they are required because these are refs - they can be mutated
1841
- function getDownshiftElements() {
1842
- return downshiftElementsRefs.map(function (ref) {
1839
+ var getDownshiftElements = React.useCallback(function () {
1840
+ return downshiftRefs.map(function (ref) {
1843
1841
  return ref.current;
1844
1842
  });
1845
- }
1843
+ }, [downshiftRefs]);
1846
1844
  React.useEffect(function () {
1847
1845
  if (!environment) {
1848
1846
  return noop;
@@ -1882,7 +1880,7 @@ function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs)
1882
1880
  environment.removeEventListener('touchmove', onTouchMove);
1883
1881
  environment.removeEventListener('touchend', onTouchEnd);
1884
1882
  };
1885
- }, [downshiftElementsRefs, environment, handleBlur]);
1883
+ }, [environment, getDownshiftElements, handleBlur]);
1886
1884
  return mouseAndTouchTrackersRef.current;
1887
1885
  }
1888
1886
 
@@ -2470,17 +2468,17 @@ function useSelect(userProps) {
2470
2468
  }
2471
2469
  // eslint-disable-next-line react-hooks/exhaustive-deps
2472
2470
  }, []);
2473
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
2471
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
2474
2472
  if (latest.current.state.isOpen) {
2475
2473
  dispatch({
2476
2474
  type: ToggleButtonBlur
2477
2475
  });
2478
2476
  }
2479
- }, [dispatch, latest]), React.useMemo(function () {
2477
+ }, [dispatch, latest]);
2478
+ var downshiftRefs = React.useMemo(function () {
2480
2479
  return [menuRef, toggleButtonRef];
2481
- },
2482
- // dependencies can be left empty because refs are getting mutated
2483
- []));
2480
+ }, []);
2481
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
2484
2482
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
2485
2483
  // Reset itemRefs on close.
2486
2484
  React.useEffect(function () {
@@ -3093,18 +3091,17 @@ function useCombobox(userProps) {
3093
3091
  previousResultCountRef.current = items.length;
3094
3092
  }
3095
3093
  });
3096
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
3094
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
3097
3095
  if (latest.current.state.isOpen) {
3098
3096
  dispatch({
3099
- type: InputBlur,
3100
- selectItem: false
3097
+ type: InputBlur
3101
3098
  });
3102
3099
  }
3103
- }, [dispatch, latest]), React.useMemo(function () {
3100
+ }, [dispatch, latest]);
3101
+ var downshiftRefs = React.useMemo(function () {
3104
3102
  return [menuRef, toggleButtonRef, inputRef];
3105
- },
3106
- // dependencies can be left empty because refs are getting mutated
3107
- []));
3103
+ }, []);
3104
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
3108
3105
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
3109
3106
  // Reset itemRefs on close.
3110
3107
  React.useEffect(function () {
@@ -1826,19 +1826,17 @@ function getHighlightedIndexOnOpen(props, state, offset) {
1826
1826
  * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
1827
1827
  * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
1828
1828
  */
1829
- function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {
1829
+ function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
1830
1830
  var mouseAndTouchTrackersRef = useRef({
1831
1831
  isMouseDown: false,
1832
1832
  isTouchMove: false,
1833
1833
  isTouchEnd: false
1834
1834
  });
1835
-
1836
- // the elements should be retrieved the moment they are required because these are refs - they can be mutated
1837
- function getDownshiftElements() {
1838
- return downshiftElementsRefs.map(function (ref) {
1835
+ var getDownshiftElements = useCallback(function () {
1836
+ return downshiftRefs.map(function (ref) {
1839
1837
  return ref.current;
1840
1838
  });
1841
- }
1839
+ }, [downshiftRefs]);
1842
1840
  useEffect(function () {
1843
1841
  if (!environment) {
1844
1842
  return noop;
@@ -1878,7 +1876,7 @@ function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs)
1878
1876
  environment.removeEventListener('touchmove', onTouchMove);
1879
1877
  environment.removeEventListener('touchend', onTouchEnd);
1880
1878
  };
1881
- }, [downshiftElementsRefs, environment, handleBlur]);
1879
+ }, [environment, getDownshiftElements, handleBlur]);
1882
1880
  return mouseAndTouchTrackersRef.current;
1883
1881
  }
1884
1882
 
@@ -2466,17 +2464,17 @@ function useSelect(userProps) {
2466
2464
  }
2467
2465
  // eslint-disable-next-line react-hooks/exhaustive-deps
2468
2466
  }, []);
2469
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {
2467
+ var handleBlurInTracker = useCallback(function handleBlur() {
2470
2468
  if (latest.current.state.isOpen) {
2471
2469
  dispatch({
2472
2470
  type: ToggleButtonBlur
2473
2471
  });
2474
2472
  }
2475
- }, [dispatch, latest]), useMemo(function () {
2473
+ }, [dispatch, latest]);
2474
+ var downshiftRefs = useMemo(function () {
2476
2475
  return [menuRef, toggleButtonRef];
2477
- },
2478
- // dependencies can be left empty because refs are getting mutated
2479
- []));
2476
+ }, []);
2477
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
2480
2478
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
2481
2479
  // Reset itemRefs on close.
2482
2480
  useEffect(function () {
@@ -3089,18 +3087,17 @@ function useCombobox(userProps) {
3089
3087
  previousResultCountRef.current = items.length;
3090
3088
  }
3091
3089
  });
3092
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {
3090
+ var handleBlurInTracker = useCallback(function handleBlur() {
3093
3091
  if (latest.current.state.isOpen) {
3094
3092
  dispatch({
3095
- type: InputBlur,
3096
- selectItem: false
3093
+ type: InputBlur
3097
3094
  });
3098
3095
  }
3099
- }, [dispatch, latest]), useMemo(function () {
3096
+ }, [dispatch, latest]);
3097
+ var downshiftRefs = useMemo(function () {
3100
3098
  return [menuRef, toggleButtonRef, inputRef];
3101
- },
3102
- // dependencies can be left empty because refs are getting mutated
3103
- []));
3099
+ }, []);
3100
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
3104
3101
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
3105
3102
  // Reset itemRefs on close.
3106
3103
  useEffect(function () {
@@ -1717,17 +1717,22 @@ function getHighlightedIndexOnOpen(props, state, offset) {
1717
1717
  * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
1718
1718
  * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
1719
1719
  */
1720
- function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {
1720
+ function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
1721
1721
  var mouseAndTouchTrackersRef = React.useRef({
1722
1722
  isMouseDown: false,
1723
1723
  isTouchMove: false,
1724
1724
  isTouchEnd: false
1725
1725
  });
1726
+ var getDownshiftElements = React.useCallback(function () {
1727
+ return downshiftRefs.map(function (ref) {
1728
+ return ref.current;
1729
+ });
1730
+ }, [downshiftRefs]);
1726
1731
  React.useEffect(function () {
1727
1732
  {
1728
1733
  return noop;
1729
1734
  }
1730
- }, [downshiftElementsRefs, environment, handleBlur]);
1735
+ }, [environment, getDownshiftElements, handleBlur]);
1731
1736
  return mouseAndTouchTrackersRef.current;
1732
1737
  }
1733
1738
 
@@ -2313,17 +2318,17 @@ function useSelect(userProps) {
2313
2318
  }
2314
2319
  // eslint-disable-next-line react-hooks/exhaustive-deps
2315
2320
  }, []);
2316
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
2321
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
2317
2322
  if (latest.current.state.isOpen) {
2318
2323
  dispatch({
2319
2324
  type: ToggleButtonBlur
2320
2325
  });
2321
2326
  }
2322
- }, [dispatch, latest]), React.useMemo(function () {
2327
+ }, [dispatch, latest]);
2328
+ var downshiftRefs = React.useMemo(function () {
2323
2329
  return [menuRef, toggleButtonRef];
2324
- },
2325
- // dependencies can be left empty because refs are getting mutated
2326
- []));
2330
+ }, []);
2331
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
2327
2332
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
2328
2333
  // Reset itemRefs on close.
2329
2334
  React.useEffect(function () {
@@ -2924,18 +2929,17 @@ function useCombobox(userProps) {
2924
2929
  previousResultCountRef.current = items.length;
2925
2930
  }
2926
2931
  });
2927
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
2932
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
2928
2933
  if (latest.current.state.isOpen) {
2929
2934
  dispatch({
2930
- type: InputBlur,
2931
- selectItem: false
2935
+ type: InputBlur
2932
2936
  });
2933
2937
  }
2934
- }, [dispatch, latest]), React.useMemo(function () {
2938
+ }, [dispatch, latest]);
2939
+ var downshiftRefs = React.useMemo(function () {
2935
2940
  return [menuRef, toggleButtonRef, inputRef];
2936
- },
2937
- // dependencies can be left empty because refs are getting mutated
2938
- []));
2941
+ }, []);
2942
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
2939
2943
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
2940
2944
  // Reset itemRefs on close.
2941
2945
  React.useEffect(function () {
@@ -1825,19 +1825,17 @@ function getHighlightedIndexOnOpen(props, state, offset) {
1825
1825
  * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
1826
1826
  * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
1827
1827
  */
1828
- function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {
1828
+ function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
1829
1829
  var mouseAndTouchTrackersRef = React.useRef({
1830
1830
  isMouseDown: false,
1831
1831
  isTouchMove: false,
1832
1832
  isTouchEnd: false
1833
1833
  });
1834
-
1835
- // the elements should be retrieved the moment they are required because these are refs - they can be mutated
1836
- function getDownshiftElements() {
1837
- return downshiftElementsRefs.map(function (ref) {
1834
+ var getDownshiftElements = React.useCallback(function () {
1835
+ return downshiftRefs.map(function (ref) {
1838
1836
  return ref.current;
1839
1837
  });
1840
- }
1838
+ }, [downshiftRefs]);
1841
1839
  React.useEffect(function () {
1842
1840
  if (!environment) {
1843
1841
  return noop;
@@ -1877,7 +1875,7 @@ function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs)
1877
1875
  environment.removeEventListener('touchmove', onTouchMove);
1878
1876
  environment.removeEventListener('touchend', onTouchEnd);
1879
1877
  };
1880
- }, [downshiftElementsRefs, environment, handleBlur]);
1878
+ }, [environment, getDownshiftElements, handleBlur]);
1881
1879
  return mouseAndTouchTrackersRef.current;
1882
1880
  }
1883
1881
 
@@ -2465,17 +2463,17 @@ function useSelect(userProps) {
2465
2463
  }
2466
2464
  // eslint-disable-next-line react-hooks/exhaustive-deps
2467
2465
  }, []);
2468
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
2466
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
2469
2467
  if (latest.current.state.isOpen) {
2470
2468
  dispatch({
2471
2469
  type: ToggleButtonBlur
2472
2470
  });
2473
2471
  }
2474
- }, [dispatch, latest]), React.useMemo(function () {
2472
+ }, [dispatch, latest]);
2473
+ var downshiftRefs = React.useMemo(function () {
2475
2474
  return [menuRef, toggleButtonRef];
2476
- },
2477
- // dependencies can be left empty because refs are getting mutated
2478
- []));
2475
+ }, []);
2476
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
2479
2477
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
2480
2478
  // Reset itemRefs on close.
2481
2479
  React.useEffect(function () {
@@ -3076,18 +3074,17 @@ function useCombobox(userProps) {
3076
3074
  previousResultCountRef.current = items.length;
3077
3075
  }
3078
3076
  });
3079
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
3077
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
3080
3078
  if (latest.current.state.isOpen) {
3081
3079
  dispatch({
3082
- type: InputBlur,
3083
- selectItem: false
3080
+ type: InputBlur
3084
3081
  });
3085
3082
  }
3086
- }, [dispatch, latest]), React.useMemo(function () {
3083
+ }, [dispatch, latest]);
3084
+ var downshiftRefs = React.useMemo(function () {
3087
3085
  return [menuRef, toggleButtonRef, inputRef];
3088
- },
3089
- // dependencies can be left empty because refs are getting mutated
3090
- []));
3086
+ }, []);
3087
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
3091
3088
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
3092
3089
  // Reset itemRefs on close.
3093
3090
  React.useEffect(function () {
@@ -3167,19 +3167,17 @@
3167
3167
  * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
3168
3168
  * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
3169
3169
  */
3170
- function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {
3170
+ function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
3171
3171
  var mouseAndTouchTrackersRef = React.useRef({
3172
3172
  isMouseDown: false,
3173
3173
  isTouchMove: false,
3174
3174
  isTouchEnd: false
3175
3175
  });
3176
-
3177
- // the elements should be retrieved the moment they are required because these are refs - they can be mutated
3178
- function getDownshiftElements() {
3179
- return downshiftElementsRefs.map(function (ref) {
3176
+ var getDownshiftElements = React.useCallback(function () {
3177
+ return downshiftRefs.map(function (ref) {
3180
3178
  return ref.current;
3181
3179
  });
3182
- }
3180
+ }, [downshiftRefs]);
3183
3181
  React.useEffect(function () {
3184
3182
  if (!environment) {
3185
3183
  return noop;
@@ -3219,7 +3217,7 @@
3219
3217
  environment.removeEventListener('touchmove', onTouchMove);
3220
3218
  environment.removeEventListener('touchend', onTouchEnd);
3221
3219
  };
3222
- }, [downshiftElementsRefs, environment, handleBlur]);
3220
+ }, [environment, getDownshiftElements, handleBlur]);
3223
3221
  return mouseAndTouchTrackersRef.current;
3224
3222
  }
3225
3223
 
@@ -3840,17 +3838,17 @@
3840
3838
  }
3841
3839
  // eslint-disable-next-line react-hooks/exhaustive-deps
3842
3840
  }, []);
3843
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
3841
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
3844
3842
  if (latest.current.state.isOpen) {
3845
3843
  dispatch({
3846
3844
  type: ToggleButtonBlur
3847
3845
  });
3848
3846
  }
3849
- }, [dispatch, latest]), React.useMemo(function () {
3847
+ }, [dispatch, latest]);
3848
+ var downshiftRefs = React.useMemo(function () {
3850
3849
  return [menuRef, toggleButtonRef];
3851
- },
3852
- // dependencies can be left empty because refs are getting mutated
3853
- []));
3850
+ }, []);
3851
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
3854
3852
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
3855
3853
  // Reset itemRefs on close.
3856
3854
  React.useEffect(function () {
@@ -4463,18 +4461,17 @@
4463
4461
  previousResultCountRef.current = items.length;
4464
4462
  }
4465
4463
  });
4466
- var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, React.useCallback(function handleBlur() {
4464
+ var handleBlurInTracker = React.useCallback(function handleBlur() {
4467
4465
  if (latest.current.state.isOpen) {
4468
4466
  dispatch({
4469
- type: InputBlur,
4470
- selectItem: false
4467
+ type: InputBlur
4471
4468
  });
4472
4469
  }
4473
- }, [dispatch, latest]), React.useMemo(function () {
4470
+ }, [dispatch, latest]);
4471
+ var downshiftRefs = React.useMemo(function () {
4474
4472
  return [menuRef, toggleButtonRef, inputRef];
4475
- },
4476
- // dependencies can be left empty because refs are getting mutated
4477
- []));
4473
+ }, []);
4474
+ var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
4478
4475
  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
4479
4476
  // Reset itemRefs on close.
4480
4477
  React.useEffect(function () {