|
|
- // Package imports
- import React from 'react';
- import PropTypes from 'prop-types';
- import classNames from 'classnames';
-
- // Stylesheet imports
- import './style';
-
- // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
- export default class LocalSettingsPage extends React.PureComponent {
-
- static propTypes = {
- active: PropTypes.bool,
- className: PropTypes.string,
- href: PropTypes.string,
- icon: 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,
- onNavigate,
- title,
- } = this.props;
-
- const finalClassName = classNames('glitch', 'local-settings__navigation__item', {
- active,
- }, className);
-
- const iconElem = icon ? <i className={`fa fa-fw fa-${icon}`} /> : null;
-
- if (href) return (
- <a
- href={href}
- className={finalClassName}
- >
- {iconElem} {title}
- </a>
- );
- else if (onNavigate) return (
- <a
- onClick={handleClick}
- role='button'
- tabIndex='0'
- className={finalClassName}
- >
- {iconElem} {title}
- </a>
- );
- else return null;
- }
-
- }
|