ahooks
Version:
react hooks library
22 lines (21 loc) • 753 B
JavaScript
import useBoolean from '../useBoolean';
import useEventListener from '../useEventListener';
export default (target, options) => {
const { onEnter, onLeave, onChange } = options || {};
const [state, { setTrue, setFalse }] = useBoolean(false);
useEventListener('mouseenter', () => {
onEnter === null || onEnter === void 0 ? void 0 : onEnter();
setTrue();
onChange === null || onChange === void 0 ? void 0 : onChange(true);
}, {
target,
});
useEventListener('mouseleave', () => {
onLeave === null || onLeave === void 0 ? void 0 : onLeave();
setFalse();
onChange === null || onChange === void 0 ? void 0 : onChange(false);
}, {
target,
});
return state;
};