Skip to content

Commit fe28c98

Browse files
authored
feat(tooltip)!: prevent a tooltip from interfering with a trigger's expanded popup (#697)
BREAKING CHANGE: a `triggerRef` parameter is now required by `useTooltip({ triggerRef })` and used to observe updates to the trigger's `aria-expanded` state
1 parent 39f9a35 commit fe28c98

File tree

12 files changed

+486
-100
lines changed

12 files changed

+486
-100
lines changed

package-lock.json

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

packages/tooltip/demo/stories/TooltipStory.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* found at http://www.apache.org/licenses/LICENSE-2.0.
66
*/
77

8-
import React from 'react';
8+
import React, { createRef } from 'react';
99
import { StoryFn } from '@storybook/react';
1010
import classNames from 'classnames';
1111
import {
@@ -60,12 +60,14 @@ interface IArgs extends ITooltipContainerProps {
6060
}
6161

6262
export const TooltipStory: StoryFn<IArgs> = ({ as, ...props }) => {
63+
const triggerRef = createRef<HTMLButtonElement>();
64+
6365
switch (as) {
6466
case 'container':
65-
return <Container {...props} />;
67+
return <Container {...props} triggerRef={triggerRef} />;
6668

6769
case 'hook':
6870
default:
69-
return <Hook {...props} />;
71+
return <Hook {...props} triggerRef={triggerRef} />;
7072
}
7173
};

packages/tooltip/demo/~patterns/patterns.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,9 @@ Demonstrate `openTooltip` and `closeTooltip` overrides.
1212
<Canvas>
1313
<Story of={PatternsStories.Focus} />
1414
</Canvas>
15+
16+
## Menu
17+
18+
<Canvas>
19+
<Story of={PatternsStories.Menu} />
20+
</Canvas>

packages/tooltip/demo/~patterns/patterns.stories.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,18 @@
88
import React from 'react';
99
import type { Meta, StoryObj } from '@storybook/react';
1010
import { FocusStory } from './stories/FocusStory';
11+
import { MenuStory } from './stories/MenuStory';
1112

12-
const meta: Meta<typeof FocusStory> = { title: 'Packages/Tooltip/[patterns]' };
13+
const meta: Meta = { title: 'Packages/Tooltip/[patterns]' };
1314

1415
export default meta;
1516

1617
export const Focus: StoryObj<typeof FocusStory> = {
1718
render: args => <FocusStory {...args} />,
1819
name: 'Focus'
1920
};
21+
22+
export const Menu: StoryObj<typeof MenuStory> = {
23+
render: args => <MenuStory {...args} />,
24+
name: 'Menu'
25+
};

0 commit comments

Comments
 (0)