Skip to content

Commit c92ab50

Browse files
authored
TPP-879 fix issue where tooltip crashes global bar (#328)
1 parent 069a89b commit c92ab50

File tree

4 files changed

+33
-8
lines changed

4 files changed

+33
-8
lines changed

lib/components/Popover/index.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ import { PropTypes } from "prop-types";
2121
import Box from "../Box";
2222
import {
2323
getFloatingUiRootElement,
24-
getFloatingUiZIndex
24+
getFloatingUiZIndex,
25+
isRenderedInReactSelectMenu
2526
} from "../../utils/floatingUiHelpers";
2627

2728
const DIRECTIONS_MAP = {
@@ -359,6 +360,7 @@ export default function Popover({
359360
{text}
360361
</StyledPopover>
361362
);
363+
const containsLinks = refs.floating?.current?.querySelectorAll("a").length;
362364

363365
return (
364366
<Box {...props} aria-describedby={context.floatingId}>
@@ -368,9 +370,19 @@ export default function Popover({
368370
root={getFloatingUiRootElement(context.refs.reference)}
369371
preserveTabOrder={true}
370372
>
371-
<FloatingFocusManager context={context} modal={false}>
372-
{Popover}
373-
</FloatingFocusManager>
373+
{containsLinks ? (
374+
<FloatingFocusManager
375+
context={context}
376+
modal={false}
377+
initialFocus={
378+
isRenderedInReactSelectMenu(context.refs.reference) && -1
379+
}
380+
>
381+
{Popover}
382+
</FloatingFocusManager>
383+
) : (
384+
Popover
385+
)}
374386
</FloatingPortal>
375387
) : (
376388
Popover

lib/utils/floatingUiHelpers.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ const getFloatingUiZIndex = (triggerRef) => {
1212
return 900;
1313
};
1414

15+
const REACT_SELECT_MENU = "react-select-menu";
16+
17+
const isRenderedInReactSelectMenu = (triggerRef) =>
18+
document.getElementById(REACT_SELECT_MENU)?.contains?.(triggerRef.current);
19+
1520
const getFloatingUiRootElement = (triggerRef) => {
1621
const activeModalRef = document.getElementById("modal-overlay");
1722

@@ -21,7 +26,15 @@ const getFloatingUiRootElement = (triggerRef) => {
2126
return document.getElementById("modal");
2227
}
2328

29+
if (isRenderedInReactSelectMenu(triggerRef)) {
30+
return document.getElementById(REACT_SELECT_MENU).firstChild;
31+
}
32+
2433
return undefined;
2534
};
2635

27-
export { getFloatingUiZIndex, getFloatingUiRootElement };
36+
export {
37+
getFloatingUiZIndex,
38+
getFloatingUiRootElement,
39+
isRenderedInReactSelectMenu
40+
};

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "orcs-design-system",
3-
"version": "3.2.33",
3+
"version": "3.2.34",
44
"engines": {
55
"node": "20.12.2"
66
},

0 commit comments

Comments
 (0)