1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
2021-04-28 14:53:59 -05:00

47 lines
1.0 KiB
JavaScript

import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
const defaultRender = (inner) => inner;
export default function IconButton({
onClick,
Icon,
disabled,
label,
tooltipRender,
className,
...props
}) {
const renderWrapper = tooltipRender ?? defaultRender;
return (
<button
className={classNames('icon-button', className, {
'icon-button--disabled': disabled,
})}
data-testid={props['data-testid'] ?? undefined}
onClick={onClick}
disabled={disabled}
>
{renderWrapper(
<>
<div className="icon-button__circle">
<Icon />
</div>
<span>{label}</span>
</>,
)}
</button>
);
}
IconButton.propTypes = {
'onClick': PropTypes.func.isRequired,
'Icon': PropTypes.func.isRequired,
'disabled': PropTypes.bool,
'label': PropTypes.string.isRequired,
'tooltipRender': PropTypes.func,
'className': PropTypes.string,
'data-testid': PropTypes.string,
};