/* @flow */ import Tooltip from '@atlaskit/tooltip'; import React from 'react'; import AbstractToolbarButton from '../AbstractToolbarButton'; import type { Props as AbstractToolbarButtonProps } from '../AbstractToolbarButton'; /** * The type of the React {@code Component} props of {@link ToolbarButton}. */ type Props = AbstractToolbarButtonProps & { /** * The text to display in the tooltip. */ tooltip: string, /** * From which direction the tooltip should appear, relative to the * button. */ tooltipPosition: string }; /** * Represents a button in the toolbar. * * @extends AbstractToolbarButton */ class ToolbarButton extends AbstractToolbarButton { /** * Default values for {@code ToolbarButton} component's properties. * * @static */ static defaultProps = { tooltipPosition: 'top' }; /** * Renders the button of this {@code ToolbarButton}. * * @param {Object} children - The children, if any, to be rendered inside * the button. Presumably, contains the icon of this {@code ToolbarButton}. * @protected * @returns {ReactElement} The button of this {@code ToolbarButton}. */ _renderButton(children) { return (
{ this.props.tooltip ? { children } : children }
); } /** * Renders the icon of this {@code ToolbarButton}. * * @inheritdoc */ _renderIcon() { return (
); } } export default ToolbarButton;