import React, { useState, useRef, AnchorHTMLAttributes, ReactNode, ButtonHTMLAttributes, } from 'react'; import useClickOutside from '../../../hooks/useClickOutside'; import Transition from '../../Transition'; import { withProperties } from '../../../utils/typeHelpers'; const DropdownItem: React.FC> = ({ children, ...props }) => ( {children} ); interface ButtonWithDropdownProps extends ButtonHTMLAttributes { text: ReactNode; dropdownIcon?: ReactNode; } const ButtonWithDropdown: React.FC = ({ text, children, dropdownIcon, ...props }) => { const [isOpen, setIsOpen] = useState(false); const buttonRef = useRef(null); useClickOutside(buttonRef, () => setIsOpen(false)); return ( {children && ( )}
{children}
); }; export default withProperties(ButtonWithDropdown, { Item: DropdownItem });