123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // @flow
-
- import React from 'react';
- import { TouchableHighlight } from 'react-native';
-
- import { Icon } from '../../base/font-icons';
-
- import AbstractToolboxItem from './AbstractToolboxItem';
- import type { Props } from './AbstractToolboxItem';
-
- /**
- * Native implementation of {@code AbstractToolboxItem}.
- */
- export default class ToolboxItem extends AbstractToolboxItem<Props> {
- /**
- * Transform the given (web) icon name into a name that works with
- * {@code Icon}.
- *
- * @private
- * @returns {string}
- */
- _getIconName() {
- const { iconName } = this.props;
-
- return iconName.replace('icon-', '').split(' ')[0];
- }
-
- /**
- * Handles rendering of the actual item.
- *
- * TODO: currently no handling for labels is implemented.
- *
- * @protected
- * @returns {ReactElement}
- */
- _renderItem() {
- const {
- accessibilityLabel,
- disabled,
- onClick,
- styles
- } = this.props;
-
- return (
- <TouchableHighlight
- accessibilityLabel = { accessibilityLabel }
- disabled = { disabled }
- onPress = { onClick }
- style = { styles && styles.style }
- underlayColor = { styles && styles.underlayColor } >
- <Icon
- name = { this._getIconName() }
- style = { styles && styles.iconStyle } />
- </TouchableHighlight>
- );
- }
- }
|