import React, { useState, useMemo } from 'react' import { Box } from '../../atoms/box/index.js' import { Icon } from '../../atoms/icon/index.js' import { StyledSingleButton } from './button-group.styled.jsx' import { ButtonInGroupProps } from './button-group.types.js' export const SingleButtonInGroup: React.FC = (props) => { const { icon, label, buttons, source, onClick, ...buttonProps } = props const [loading, setLoading] = useState(false) const onClickHandler = onClick ? async (event) => { setLoading(true) await onClick(event, source) setLoading(false) } : undefined const iconName = useMemo(() => (loading ? 'Loader' : icon), [loading]) return ( {!loading && !icon ? '' : } {label} {buttons && buttons.length && label ? ( ) : ''} ) } SingleButtonInGroup.displayName = 'SingleButtonInGroup' export default SingleButtonInGroup