vue-hooks-plus
Version:
Vue hooks library
35 lines (34 loc) • 1.04 kB
JavaScript
const useBoolean = require("../useBoolean");
const useEventListener = require("../useEventListener");
const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
const useBoolean__default = /* @__PURE__ */ _interopDefaultLegacy(useBoolean);
const useEventListener__default = /* @__PURE__ */ _interopDefaultLegacy(useEventListener);
function useHover(target, options) {
const { onEnter, onLeave, onChange } = options || {};
const [state, { setTrue, setFalse }] = useBoolean__default.default(false);
useEventListener__default.default(
"mouseenter",
() => {
onEnter == null ? void 0 : onEnter();
setTrue();
onChange == null ? void 0 : onChange(true);
},
{
target
}
);
useEventListener__default.default(
"mouseleave",
() => {
onLeave == null ? void 0 : onLeave();
setFalse();
onChange == null ? void 0 : onChange(false);
},
{
target
}
);
return state;
}
module.exports = useHover;
;