import React, { useRef, useState } from 'react'; import { SilkeButton, SilkeButtonProps } from './silke-button'; import { SilkePopoverProps } from '../silke-popover'; import { SilkeList } from '../silke-list'; import { SilkePopoverNative } from '../silke-popover-native'; import type { SilkeListItemType } from '../silke-list/types'; import { PopoverPlacement } from '../silke-popover-native/types'; export type SilkeDropdownButtonProps = { items?: SilkeListItemType[]; placement?: PopoverPlacement; matchWidth?: boolean; animate?: boolean; size?: 's' | 'base'; closeOnSelect?: boolean; } & SilkeButtonProps & Omit; export function SilkeDropdownButton({ label, icon, items = [], offsetX, offsetY = 2, placement = 'bottom-end', matchWidth = false, size = 'base', animate = false, closeOnSelect = false, ...rest }: SilkeDropdownButtonProps) { const [isOpen, setIsOpen] = useState(false); const ref = useRef(null); return ( <> setIsOpen(!isOpen)} {...rest} /> setIsOpen(false)} shadow="level4" > closeOnSelect && setIsOpen(false)} /> ); }