diff --git a/src/components/Popover/Popover.stories.tsx b/src/components/Popover/Popover.stories.tsx index 2b5f7ceac..c11979289 100644 --- a/src/components/Popover/Popover.stories.tsx +++ b/src/components/Popover/Popover.stories.tsx @@ -5,6 +5,7 @@ import React from 'react'; import { Popover } from './Popover'; import type { PopoverProps } from './Popover'; import Button from '../Button'; +import Hr from '../Hr'; export default { title: 'Components/Popover', @@ -147,3 +148,31 @@ export const LeftEnd: StoryObj = { }, ...Default, }; + +export const FocusClickableElement: StoryObj = { + play: async ({ canvasElement }) => { + // We want to test visual regression for the Popover.Content as well as the button, + // but don't want the drawer open initally outside Chromatic. + if (isChromatic()) { + const canvas = within(canvasElement); + const filtersTrigger = await canvas.findByRole('button'); + await userEvent.click(filtersTrigger); + } + }, + render: (args) => { + return ( + + + Open Popover + + +
+ Popover Content goes here +
+ +
+
+
+ ); + }, +}; diff --git a/src/components/Popover/Popover.tsx b/src/components/Popover/Popover.tsx index b1e8bd5c7..892b622ca 100644 --- a/src/components/Popover/Popover.tsx +++ b/src/components/Popover/Popover.tsx @@ -86,7 +86,7 @@ const PopoverButton = (props: PopoverButtonProps) => { return ; }; -export type PopoverContentProps = { +export type PopoverContentProps = ExtractProps & { /** * Custom classname for additional styles for the arrow. */ @@ -100,17 +100,17 @@ export type PopoverContentProps = { */ className?: string; } & RenderProps<{ - /** - * Render prop indicating popover open status. - */ - open: boolean; - /** - * Render prop that closes popover when called. - */ - close: ( - focusableElement?: HTMLElement | React.RefObject, - ) => void; -}>; + /** + * Render prop indicating popover open status. + */ + open: boolean; + /** + * Render prop that closes popover when called. + */ + close: ( + focusableElement?: HTMLElement | React.RefObject, + ) => void; + }>; /** * A floating container that can be resized to fit content inside diff --git a/src/components/Popover/__snapshots__/Popover.test.tsx.snap b/src/components/Popover/__snapshots__/Popover.test.tsx.snap index 3b49d6727..25cdf3fee 100644 --- a/src/components/Popover/__snapshots__/Popover.test.tsx.snap +++ b/src/components/Popover/__snapshots__/Popover.test.tsx.snap @@ -100,6 +100,31 @@ exports[` Default story renders snapshot 1`] = ` `; +exports[` FocusClickableElement story renders snapshot 1`] = ` +
+ +
+`; + exports[` Left story renders snapshot 1`] = `