Reafactor/UI input and displays (#1544)

* WIP

* Text field

* URL

* Finished PhoneInput

* Refactored input sub-folders

* Boolean

* Fix lint

* Fix lint

* Fix useOutsideClick

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Lucas Bordeau
2023-09-12 02:11:20 +02:00
committed by GitHub
parent 509ffddc57
commit a766c60aa5
90 changed files with 618 additions and 461 deletions

View File

@ -9,10 +9,12 @@ export function useListenClickOutside<T extends Element>({
refs,
callback,
mode = ClickOutsideMode.dom,
enabled = true,
}: {
refs: Array<React.RefObject<T>>;
callback: (event: MouseEvent | TouchEvent) => void;
mode?: ClickOutsideMode;
enabled?: boolean;
}) {
useEffect(() => {
function handleClickOutside(event: MouseEvent | TouchEvent) {
@ -61,20 +63,22 @@ export function useListenClickOutside<T extends Element>({
}
}
document.addEventListener('click', handleClickOutside, { capture: true });
document.addEventListener('touchend', handleClickOutside, {
capture: true,
});
if (enabled) {
document.addEventListener('click', handleClickOutside, { capture: true });
document.addEventListener('touchend', handleClickOutside, {
capture: true,
});
return () => {
document.removeEventListener('click', handleClickOutside, {
capture: true,
});
document.removeEventListener('touchend', handleClickOutside, {
capture: true,
});
};
}, [refs, callback, mode]);
return () => {
document.removeEventListener('click', handleClickOutside, {
capture: true,
});
document.removeEventListener('touchend', handleClickOutside, {
capture: true,
});
};
}
}, [refs, callback, mode, enabled]);
}
export const useListenClickOutsideByClassName = ({
classNames,