// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; import {TouchableOpacity, View} from 'react-native'; import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome'; import FormattedText from 'app/components/formatted_text'; import VectorIcon from 'app/components/vector_icon.js'; import getStyleSheet from './style'; export default class SettingsItem extends PureComponent { static propTypes = { defaultMessage: PropTypes.string.isRequired, i18nId: PropTypes.string.isRequired, iconName: PropTypes.string, iconType: PropTypes.oneOf(['fontawesome', 'foundation', 'ion', 'material']), isDestructor: PropTypes.bool, centered: PropTypes.bool, onPress: PropTypes.func, separator: PropTypes.bool, showArrow: PropTypes.bool, theme: PropTypes.object.isRequired }; static defaultProps = { isDestructor: false, separator: true }; render() { const { centered, defaultMessage, i18nId, iconName, iconType, isDestructor, onPress, separator, showArrow, theme } = this.props; const style = getStyleSheet(theme); const destructor = {}; if (isDestructor) { destructor.color = theme.errorTextColor; } let divider; if (separator) { divider = (); } let icon; if (iconType && iconName) { icon = ( ); } return ( {icon && {icon} } {showArrow && } {divider} ); } }