| 1234567891011121314151617181920212223242526 |
- import { onMounted, ref } from '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.
- */
- export default function useDelayReset() {
- var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
- var bool = ref(false);
- var delay;
- var cancelLatest = function cancelLatest() {
- clearTimeout(delay);
- };
- onMounted(function () {
- cancelLatest();
- });
- var delaySetBool = function delaySetBool(value, callback) {
- cancelLatest();
- delay = setTimeout(function () {
- bool.value = value;
- if (callback) {
- callback();
- }
- }, timeout);
- };
- return [bool, delaySetBool, cancelLatest];
- }
|