Implemented useListenClickOutside V2 (#3507)
* Implemented useListenClickOutside V2 * Removed lock and implemented a toggle instead
This commit is contained in:
@ -1,4 +1,8 @@
|
||||
import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
import { MULTI_OBJECT_RECORD_CLICK_OUTSIDE_LISTENER_ID } from '@/object-record/relation-picker/constants/MultiObjectRecordClickOutsideListenerId';
|
||||
import { RIGHT_DRAWER_CLICK_OUTSIDE_LISTENER_ID } from '@/ui/layout/right-drawer/constants/RightDrawerClickOutsideListener';
|
||||
import { useClickOutsideListener } from '@/ui/utilities/pointer-event/hooks/useClickOutsideListener';
|
||||
|
||||
export const MultipleObjectRecordOnClickOutsideEffect = ({
|
||||
containerRef,
|
||||
@ -7,6 +11,21 @@ export const MultipleObjectRecordOnClickOutsideEffect = ({
|
||||
containerRef: React.RefObject<HTMLDivElement>;
|
||||
onClickOutside: () => void;
|
||||
}) => {
|
||||
const { useListenClickOutside } = useClickOutsideListener(
|
||||
MULTI_OBJECT_RECORD_CLICK_OUTSIDE_LISTENER_ID,
|
||||
);
|
||||
|
||||
const { toggleClickOutsideListener: toggleRightDrawerClickOustideListener } =
|
||||
useClickOutsideListener(RIGHT_DRAWER_CLICK_OUTSIDE_LISTENER_ID);
|
||||
|
||||
useEffect(() => {
|
||||
toggleRightDrawerClickOustideListener(false);
|
||||
|
||||
return () => {
|
||||
toggleRightDrawerClickOustideListener(true);
|
||||
};
|
||||
}, [toggleRightDrawerClickOustideListener]);
|
||||
|
||||
useListenClickOutside({
|
||||
refs: [containerRef],
|
||||
callback: (event) => {
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
export const MULTI_OBJECT_RECORD_CLICK_OUTSIDE_LISTENER_ID =
|
||||
'multi-object-record-click-outside-listener';
|
||||
Reference in New Issue
Block a user