click-away-listener
Version:
A React component and hook library for detecting clicks outside an element, compatible with React 18 and Next.js
44 lines • 1.3 kB
JavaScript
export var isMouseEvent = function (event) {
return event.type.includes('mouse');
};
export var isTouchEvent = function (event) {
return event.type.includes('touch');
};
export var isFocusEvent = function (event) {
return event.type.includes('focus');
};
export var isKeyboardEvent = function (event) {
return event.type === 'keydown';
};
export var getEventGroup = function (event) {
if (isMouseEvent(event))
return 'mouse';
if (isTouchEvent(event))
return 'touch';
if (isFocusEvent(event))
return 'focus';
if (isKeyboardEvent(event))
return 'keyboard';
return null;
};
export var mergeRefs = function () {
var refs = [];
for (var _i = 0; _i < arguments.length; _i++) {
refs[_i] = arguments[_i];
}
return function (value) {
refs.forEach(function (ref) {
if (typeof ref === 'function') {
ref(value);
}
else if (ref != null) {
ref.current = value;
}
});
};
};
export var isInExcluded = function (target, excludeRefs) {
if (excludeRefs === void 0) { excludeRefs = []; }
return excludeRefs.some(function (ref) { return ref.current && ref.current.contains(target); });
};
//# sourceMappingURL=utils.js.map