1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import PropTypes from 'prop-types';
- import React from 'react';
- import { TouchableHighlight } from 'react-native';
- import { connect } from 'react-redux';
-
- import { Icon } from '../../../base/font-icons';
-
- import AbstractToolbarButton from '../AbstractToolbarButton';
-
- /**
- * Represents a button in {@link Toolbar} on React Native.
- *
- * @extends AbstractToolbarButton
- */
- class ToolbarButton extends AbstractToolbarButton {
- /**
- * {@code ToolbarButton} component's property types.
- *
- * @static
- */
- static propTypes = {
- ...AbstractToolbarButton.propTypes,
-
- /**
- * Indicates whether this {@code ToolbarButton} is disabled.
- */
- disabled: PropTypes.bool
- };
-
- /**
- * 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) {
- const props = {};
-
- 'accessibilityLabel' in this.props
- && (props.accessibilityLabel = this.props.accessibilityLabel);
- 'disabled' in this.props && (props.disabled = this.props.disabled);
- 'onClick' in this.props && (props.onPress = this._onClick);
- 'style' in this.props && (props.style = this.props.style);
- 'underlayColor' in this.props
- && (props.underlayColor = this.props.underlayColor);
-
- return React.createElement(TouchableHighlight, props, children);
- }
-
- /**
- * Renders the icon of this {@code ToolbarButton}.
- *
- * @inheritdoc
- */
- _renderIcon() {
- return super._renderIcon(Icon);
- }
- }
-
- export default connect()(ToolbarButton);
|