Files
LiquidCode_Frontend/src/hooks/useClickOutside.ts
Виталий Лавшонок 4972836164 formatting
2025-11-04 15:04:59 +03:00

22 lines
718 B
TypeScript

import React from 'react';
export const useClickOutside = (
ref: React.RefObject<any>,
onClickOutside: () => void,
) => {
React.useEffect(() => {
const handleClickOutside = (event: MouseEvent | TouchEvent) => {
if (ref.current && !ref.current.contains(event.target)) {
onClickOutside();
}
};
document.addEventListener('mousedown', handleClickOutside);
document.addEventListener('touchstart', handleClickOutside);
return () => {
document.removeEventListener('mousedown', handleClickOutside);
document.removeEventListener('touchstart', handleClickOutside);
};
}, [ref, onClickOutside]);
};