Vulture/VApp/node_modules/vuetify/lib/composables/toggleScope.mjs

29 lines
561 B
JavaScript

// Utilities
import { effectScope, onScopeDispose, watch } from 'vue';
// Types
export function useToggleScope(source, fn) {
let scope;
function start() {
scope = effectScope();
scope.run(() => fn.length ? fn(() => {
scope?.stop();
start();
}) : fn());
}
watch(source, active => {
if (active && !scope) {
start();
} else if (!active) {
scope?.stop();
scope = undefined;
}
}, {
immediate: true
});
onScopeDispose(() => {
scope?.stop();
});
}
//# sourceMappingURL=toggleScope.mjs.map