@cran/vue.use
Version:
Cranberry Vue Use Utilities
19 lines (18 loc) • 698 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLifecycleWatch = void 0;
const useLifecycle_1 = require("./useLifecycle");
const runtime_dom_1 = require("@vue/runtime-dom");
function useLifecycleWatch(target, handler, options) {
const unwrap = target instanceof Function
? target : function doUnwrap() {
return (0, runtime_dom_1.unref)(target);
};
(0, runtime_dom_1.watch)(unwrap, handler, options);
return (0, useLifecycle_1.useLifecycle)(function onActive() {
handler(unwrap(), undefined);
}, function onInactive() {
handler(undefined, unwrap());
});
}
exports.useLifecycleWatch = useLifecycleWatch;