useActive.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  8. var _context = require("../context");
  9. var _vue = require("vue");
  10. var _vcSelect = require("../../vc-select");
  11. var _useState3 = _interopRequireDefault(require("../../_util/hooks/useState"));
  12. /**
  13. * Control the active open options path.
  14. */
  15. var _default = function _default() {
  16. var baseProps = (0, _vcSelect.useBaseProps)();
  17. var _useInjectCascader = (0, _context.useInjectCascader)(),
  18. values = _useInjectCascader.values;
  19. // Record current dropdown active options
  20. // This also control the open status
  21. var _useState = (0, _useState3.default)([]),
  22. _useState2 = (0, _slicedToArray2.default)(_useState, 2),
  23. activeValueCells = _useState2[0],
  24. setActiveValueCells = _useState2[1];
  25. (0, _vue.watch)(function () {
  26. return baseProps.open;
  27. }, function () {
  28. if (baseProps.open && !baseProps.multiple) {
  29. var firstValueCells = values.value[0];
  30. setActiveValueCells(firstValueCells || []);
  31. }
  32. }, {
  33. immediate: true
  34. });
  35. return [activeValueCells, setActiveValueCells];
  36. };
  37. exports.default = _default;