2024-01-29 09:26:07 +08:00
|
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
2024-08-02 18:19:39 +08:00
|
|
|
exports.useDeferredTrue = useDeferredTrue;
|
2024-01-29 09:26:07 +08:00
|
|
|
const vue_1 = require("vue");
|
|
|
|
function useDeferredTrue(valueRef, delay, shouldDelayRef) {
|
|
|
|
if (!delay)
|
|
|
|
return valueRef;
|
|
|
|
const delayedRef = (0, vue_1.ref)(valueRef.value);
|
|
|
|
let timerId = null;
|
|
|
|
(0, vue_1.watch)(valueRef, (value) => {
|
|
|
|
if (timerId !== null)
|
|
|
|
window.clearTimeout(timerId);
|
|
|
|
if (value === true) {
|
|
|
|
if (shouldDelayRef && !shouldDelayRef.value) {
|
|
|
|
delayedRef.value = true;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
timerId = window.setTimeout(() => {
|
|
|
|
delayedRef.value = true;
|
|
|
|
}, delay);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
delayedRef.value = false;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return delayedRef;
|
|
|
|
}
|