Sha256: c41883435393ba3e712038a3aa8c9d00783540993776a55a5da2afd4209a5436

Contents?: true

Size: 1.24 KB

Versions: 565

Compression:

Stored size: 1.24 KB

Contents

type HandleClickOutsideType = {
  inputWrapperRef?: React.RefObject<HTMLDivElement>;
  dropdownContainerRef?: React.RefObject<HTMLDivElement>;
  setIsDropDownClosed?: (value: boolean) => void;
  setFocusedOptionIndex?: (value: number) => void;
  setIsInputFocused?: (value: boolean) => void;
};

export const handleClickOutside =
  ({
    inputWrapperRef,
    dropdownContainerRef,
    setIsDropDownClosed,
    setFocusedOptionIndex,
    setIsInputFocused,
  }: HandleClickOutsideType) =>
  (e: MouseEvent) => {
    let targetElement = e.target as HTMLElement;
    let shouldClose = true;

    //Only needed for when useDropdown hook used with external trigger
    while (targetElement && shouldClose) {
      if (
        targetElement.getAttribute("data-dropdown") === "pb-dropdown-trigger"
      ) {
        shouldClose = false;
      }
      targetElement = targetElement.parentElement as HTMLElement;
    }
    if (
      inputWrapperRef.current &&
      !inputWrapperRef.current.contains((e.target as HTMLElement)) &&
      dropdownContainerRef.current &&
      !dropdownContainerRef.current.contains((e.target as HTMLElement)) &&
      shouldClose
    ) {
      setIsDropDownClosed(true);
      setFocusedOptionIndex(-1);
      setIsInputFocused(false);
    }
  };

Version data entries

565 entries across 565 versions & 1 rubygems

Version Path
playbook_ui-14.12.0.pre.alpha.play1790darkaudittable5802 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.play1752updatecontenttag5801 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.6 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.5 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PLAY1602lightboxoverlapnitrobug5781 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.4 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.playrailsinputmaskissue5775 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PBNTR456fixedconftoastrailsautoclose5757 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PBNTR456fixedconftoastrailsautoclose5754 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PLAY1602lightboxoverlapnitrobugzindextoken5751 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PBNTR456fixedconftoastrailsautoclose5738 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.3 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PLAY1865reactdatepickerreinitializingbug5732 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.PBNTR456fixedconftoastrailsautoclose5728 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.play1862buttondisabledlinkbug5716 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.play1862buttondisabledlinkbug5714 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.2 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.1 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.13.0.pre.rc.0 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
playbook_ui-14.12.0.pre.alpha.advancedtablealignmentfixes5693 app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx