UNPKG

ant-design-vue

Version:

An enterprise-class UI design language and Vue-based implementation

32 lines (31 loc) 835 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useDelayReset; var _vue = require("vue"); /** * Similar with `useLock`, but this hook will always execute last value. * When set to `true`, it will keep `true` for a short time even if `false` is set. */ function useDelayReset() { let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10; const bool = (0, _vue.shallowRef)(false); let delay; const cancelLatest = () => { clearTimeout(delay); }; (0, _vue.onMounted)(() => { cancelLatest(); }); const delaySetBool = (value, callback) => { cancelLatest(); delay = setTimeout(() => { bool.value = value; if (callback) { callback(); } }, timeout); }; return [bool, delaySetBool, cancelLatest]; }