useHoverValue.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useHoverValue;
  7. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  8. var _raf = _interopRequireDefault(require("../../_util/raf"));
  9. var _vue = require("vue");
  10. var _useValueTexts3 = _interopRequireDefault(require("./useValueTexts"));
  11. function useHoverValue(valueText, _ref) {
  12. var formatList = _ref.formatList,
  13. generateConfig = _ref.generateConfig,
  14. locale = _ref.locale;
  15. var innerValue = (0, _vue.ref)(null);
  16. var rafId;
  17. function setValue(val) {
  18. var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  19. _raf.default.cancel(rafId);
  20. if (immediately) {
  21. innerValue.value = val;
  22. return;
  23. }
  24. rafId = (0, _raf.default)(function () {
  25. innerValue.value = val;
  26. });
  27. }
  28. var _useValueTexts = (0, _useValueTexts3.default)(innerValue, {
  29. formatList: formatList,
  30. generateConfig: generateConfig,
  31. locale: locale
  32. }),
  33. _useValueTexts2 = (0, _slicedToArray2.default)(_useValueTexts, 2),
  34. firstText = _useValueTexts2[1];
  35. function onEnter(date) {
  36. setValue(date);
  37. }
  38. function onLeave() {
  39. var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  40. setValue(null, immediately);
  41. }
  42. (0, _vue.watch)(valueText, function () {
  43. onLeave(true);
  44. });
  45. (0, _vue.onBeforeUnmount)(function () {
  46. _raf.default.cancel(rafId);
  47. });
  48. return [firstText, onEnter, onLeave];
  49. }