useActive.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = void 0;
  8. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  9. var React = _interopRequireWildcard(require("react"));
  10. var _context = _interopRequireDefault(require("../context"));
  11. /**
  12. * Control the active open options path.
  13. */
  14. var useActive = function useActive(multiple, open) {
  15. var _React$useContext = React.useContext(_context.default),
  16. values = _React$useContext.values;
  17. var firstValueCells = values[0];
  18. // Record current dropdown active options
  19. // This also control the open status
  20. var _React$useState = React.useState([]),
  21. _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
  22. activeValueCells = _React$useState2[0],
  23. setActiveValueCells = _React$useState2[1];
  24. React.useEffect(function () {
  25. if (!multiple) {
  26. setActiveValueCells(firstValueCells || []);
  27. }
  28. }, /* eslint-disable react-hooks/exhaustive-deps */
  29. [open, firstValueCells]
  30. /* eslint-enable react-hooks/exhaustive-deps */);
  31. return [activeValueCells, setActiveValueCells];
  32. };
  33. var _default = exports.default = useActive;