Skip to content

Commit

Permalink
stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
scurker committed Sep 19, 2024
1 parent 11d4af7 commit 3096a8d
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 37 deletions.
2 changes: 1 addition & 1 deletion packages/react/src/components/Popover/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ const Popover = forwardRef<HTMLDivElement, PopoverProps>(
callback: handleClosePopover,
active: show
},
[handleClosePopover]
[show]
);

if (!show || !isBrowser()) return null;
Expand Down
17 changes: 10 additions & 7 deletions packages/react/src/components/Tooltip/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,17 @@ export default function Tooltip({
initialPlacement;

// Only listen to key ups when the tooltip is visible
useEscapeKey({
callback: (event) => {
event.preventDefault();
setShowTooltip(false);
useEscapeKey(
{
callback: (event) => {
event.preventDefault();
setShowTooltip(false);
},
capture: true,
active: showTooltip && typeof showProp !== 'boolean'
},
capture: true,
active: showTooltip && typeof showProp !== 'boolean'
});
[setShowTooltip]
);

// Handle hover and focus events for the targetElement
useEffect(() => {
Expand Down
26 changes: 1 addition & 25 deletions packages/react/src/components/TwoColumnPanel/TwoColumnPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import React, {
cloneElement,
isValidElement,
useRef,
useLayoutEffect,
useEffect
useLayoutEffect
} from 'react';
import { useId } from 'react-id-generator';
import FocusTrap from 'focus-trap-react';
Expand Down Expand Up @@ -223,29 +222,6 @@ const TwoColumnPanel = forwardRef<HTMLDivElement, TwoColumnPanelProps>(
[setCollapsed]
);

useEffect(() => {
const handleEscape = (event: KeyboardEvent) => {
if (
event.key === 'Escape' ||
event.key === 'Esc' ||
event.keyCode === 27
) {
setCollapsed(true);
}
};

const targetElement = document.body;
if (isFocusTrap) {
targetElement.addEventListener('keyup', handleEscape);
} else {
targetElement.removeEventListener('keyup', handleEscape);
}

return () => {
targetElement.removeEventListener('keyup', handleEscape);
};
}, [isFocusTrap]);

const handleClickOutside = () => {
if (!isCollapsed && isFocusTrap) {
setCollapsed(true);
Expand Down
16 changes: 12 additions & 4 deletions packages/react/src/utils/useEscapeKey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ const isEscapeKey = (event: KeyboardEvent) =>
*/
export default function useEscapeKey<T extends HTMLElement = HTMLElement>(
options: {
callback: (event: KeyboardEvent) => void;
active?: boolean;
callback: (event: KeyboardEvent) => void;
event?: 'keydown' | 'keypress' | 'keyup';
target?: T | React.RefObject<T> | React.MutableRefObject<T>;
defaultPrevented?: boolean;
Expand Down Expand Up @@ -44,11 +44,19 @@ export default function useEscapeKey<T extends HTMLElement = HTMLElement>(
};

if (active) {
target?.addEventListener(event, eventListener, options?.capture);
target?.addEventListener(event, eventListener, options.capture);
}

return () => {
target?.removeEventListener(event, eventListener, options?.capture);
target?.removeEventListener(event, eventListener, options.capture);
};
}, [active, event, target, ...dependencies]);
}, [
active,
callback,
event,
target,
options.capture,
options.defaultPrevented,
...dependencies
]);
}

0 comments on commit 3096a8d

Please sign in to comment.