useActive.js 1.0 KB

123456789101112131415161718192021222324252627282930313233
  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 _context = require("../context");
  8. var _vue = require("vue");
  9. var _vcSelect = require("../../vc-select");
  10. var _useState = _interopRequireDefault(require("../../_util/hooks/useState"));
  11. /**
  12. * Control the active open options path.
  13. */
  14. var _default = () => {
  15. const baseProps = (0, _vcSelect.useBaseProps)();
  16. const {
  17. values
  18. } = (0, _context.useInjectCascader)();
  19. // Record current dropdown active options
  20. // This also control the open status
  21. const [activeValueCells, setActiveValueCells] = (0, _useState.default)([]);
  22. (0, _vue.watch)(() => baseProps.open, () => {
  23. if (baseProps.open && !baseProps.multiple) {
  24. const firstValueCells = values.value[0];
  25. setActiveValueCells(firstValueCells || []);
  26. }
  27. }, {
  28. immediate: true
  29. });
  30. return [activeValueCells, setActiveValueCells];
  31. };
  32. exports.default = _default;