123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import Tooltip from '@atlaskit/tooltip';
- import PropTypes from 'prop-types';
- import React from 'react';
-
- import AbstractToolbarButton from './AbstractToolbarButton';
-
- /**
- * Represents a button in the toolbar.
- *
- * @extends AbstractToolbarButton
- */
- class ToolbarButtonV2 extends AbstractToolbarButton {
- /**
- * Default values for {@code ToolbarButtonV2} component's properties.
- *
- * @static
- */
- static defaultProps = {
- tooltipPosition: 'top'
- };
-
- /**
- * {@code ToolbarButtonV2} component's property types.
- *
- * @static
- */
- static propTypes = {
- ...AbstractToolbarButton.propTypes,
-
- /**
- * The text to display in the tooltip.
- */
- tooltip: PropTypes.string,
-
- /**
- * From which direction the tooltip should appear, relative to the
- * button.
- */
- tooltipPosition: PropTypes.string
- }
-
- /**
- * 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 (
- <div
- className = 'toolbox-button'
- onClick = { this.props.onClick }>
- <Tooltip
- description = { this.props.tooltip }
- position = { this.props.tooltipPosition }>
- { children }
- </Tooltip>
- </div>
- );
- }
-
- /**
- * Renders the icon of this {@code ToolbarButton}.
- *
- * @inheritdoc
- */
- _renderIcon() {
- return (
- <div className = 'toolbox-icon'>
- <i className = { this.props.iconName } />
- </div>
- );
- }
- }
-
- export default ToolbarButtonV2;
|