// Package imports import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * export default class LocalSettingsPage extends React.PureComponent { static propTypes = { active: PropTypes.bool, className: PropTypes.string, href: PropTypes.string, icon: PropTypes.string, textIcon: PropTypes.string, index: PropTypes.number.isRequired, onNavigate: PropTypes.func, title: PropTypes.string, }; handleClick = (e) => { const { index, onNavigate } = this.props; if (onNavigate) { onNavigate(index); e.preventDefault(); } }; render () { const { handleClick } = this; const { active, className, href, icon, textIcon, onNavigate, title, } = this.props; const finalClassName = classNames('glitch', 'local-settings__navigation__item', { active, }, className); const iconElem = icon ? : (textIcon ? {textIcon} : null); if (href) return ( {iconElem} {title} ); else if (onNavigate) return ( {iconElem} {title} ); else return null; } }