useActive.js 981 B

1234567891011121314151617181920212223242526272829
  1. import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
  2. import * as React from 'react';
  3. import CascaderContext from "../context";
  4. /**
  5. * Control the active open options path.
  6. */
  7. var useActive = function useActive(multiple, open) {
  8. var _React$useContext = React.useContext(CascaderContext),
  9. values = _React$useContext.values;
  10. var firstValueCells = values[0];
  11. // Record current dropdown active options
  12. // This also control the open status
  13. var _React$useState = React.useState([]),
  14. _React$useState2 = _slicedToArray(_React$useState, 2),
  15. activeValueCells = _React$useState2[0],
  16. setActiveValueCells = _React$useState2[1];
  17. React.useEffect(function () {
  18. if (!multiple) {
  19. setActiveValueCells(firstValueCells || []);
  20. }
  21. }, /* eslint-disable react-hooks/exhaustive-deps */
  22. [open, firstValueCells]
  23. /* eslint-enable react-hooks/exhaustive-deps */);
  24. return [activeValueCells, setActiveValueCells];
  25. };
  26. export default useActive;