@ozen-ui/kit
Version:
React component library
34 lines (33 loc) • 1.13 kB
JavaScript
import { __read } from "tslib";
import { useBoolean } from '../useBoolean';
import { useEventListener } from '../useEventListener';
export function useHover(
/** Ссылка на элемент к которому будет привязано событие */
elRef,
/** Дополнительные опции */
options) {
if (options === void 0) { options = { active: true }; }
var onLeave = options.onLeave, onEnter = options.onEnter, active = options.active;
var _a = __read(useBoolean(false), 2), value = _a[0], _b = _a[1], on = _b.on, off = _b.off;
var handleEnter = function (e) {
on();
onEnter === null || onEnter === void 0 ? void 0 : onEnter(e);
};
var handleLeave = function (e) {
off();
onLeave === null || onLeave === void 0 ? void 0 : onLeave(e);
};
useEventListener({
handler: handleEnter,
element: elRef,
eventName: 'mouseenter',
active: active,
});
useEventListener({
handler: handleLeave,
element: elRef,
eventName: 'mouseleave',
active: active,
});
return value;
}