const IconButton = React.forwardRef(({
variant, size, type,
tooltip, tooltipPlacement, src, onClick,
-}, ref) => (
- <Tooltip
- placement={tooltipPlacement}
- content={<Text variant="b2">{tooltip}</Text>}
- >
+}, ref) => {
+ const btn = (
<button
ref={ref}
className={`ic-btn-${variant}`}
>
<RawIcon size={size} src={src} />
</button>
- </Tooltip>
-));
+ );
+ if (tooltip === null) return btn;
+ return (
+ <Tooltip
+ placement={tooltipPlacement}
+ content={<Text variant="b2">{tooltip}</Text>}
+ >
+ {btn}
+ </Tooltip>
+ );
+});
IconButton.defaultProps = {
variant: 'surface',
size: 'normal',
type: 'button',
+ tooltip: null,
tooltipPlacement: 'top',
onClick: null,
};
variant: PropTypes.oneOf(['surface']),
size: PropTypes.oneOf(['normal', 'small', 'extra-small']),
type: PropTypes.oneOf(['button', 'submit']),
- tooltip: PropTypes.string.isRequired,
+ tooltip: PropTypes.string,
tooltipPlacement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
src: PropTypes.string.isRequired,
onClick: PropTypes.func,