import { Story, Meta } from '@storybook/react' import { Button } from '@lidofinance/button' import { PopoverProps, PopoverPlacement, PopoverOffset } from './types' import Popover from './Popover' import { useCallback, useRef, useState } from 'react' import { DEFAULT_PLACEMENT } from './constants' const getOptions = (enumObject: Record) => Object.values(enumObject).filter((value) => typeof value === 'string') export default { component: Popover, title: 'Dialogs/Popover', parameters: { layout: 'centered', }, args: { backdrop: true, offset: 'xs', placement: DEFAULT_PLACEMENT, }, argTypes: { backdrop: { control: 'boolean', }, offset: { options: getOptions(PopoverOffset), control: 'inline-radio', }, placement: { options: getOptions(PopoverPlacement), control: 'radio', }, onClose: { action: 'close', table: { disable: true }, }, }, } as Meta export const Basic: Story = (props) => { const { onClose } = props const [state, setState] = useState(false) const anchorRef = useRef(null) const handleToggle = useCallback(() => { setState((state) => !state) }, []) const handleClose = useCallback(() => { setState(false) onClose?.() }, [onClose]) return ( <> Popover ) }