({
label,
variant = 'primary',
type = 'button',
size = 'sm',
iconSize = 'md',
icon,
ghost,
isLoading,
disabled,
...rest
}: P) {
return {
...rest,
className: classNames(`iconButton`, `iconButton--${size}`, {
[`iconButton--${variant}`]: !disabled,
[`iconButton--${variant}--disabled`]: isLoading || disabled,
[`iconButton--ghost`]: ghost,
[`iconButton--isLoading`]: isLoading,
}),
disabled: isLoading || disabled,
type,
children: (
<>
{isLoading ? loaderElement : null}