import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import Identicon from '../../ui/identicon'; import MetaFoxLogo from '../../ui/metafox-logo'; import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'; import { EVENT, EVENT_NAMES } from '../../../../shared/constants/metametrics'; import NetworkDisplay from '../network-display'; export default class AppHeader extends PureComponent { static propTypes = { history: PropTypes.object, networkDropdownOpen: PropTypes.bool, showNetworkDropdown: PropTypes.func, hideNetworkDropdown: PropTypes.func, toggleAccountMenu: PropTypes.func, selectedAddress: PropTypes.string, isUnlocked: PropTypes.bool, hideNetworkIndicator: PropTypes.bool, disabled: PropTypes.bool, disableNetworkIndicator: PropTypes.bool, isAccountMenuOpen: PropTypes.bool, ///: BEGIN:ONLY_INCLUDE_IN(flask) unreadNotificationsCount: PropTypes.number, ///: END:ONLY_INCLUDE_IN onClick: PropTypes.func, }; static contextTypes = { t: PropTypes.func, trackEvent: PropTypes.func, }; handleNetworkIndicatorClick(event) { event.preventDefault(); event.stopPropagation(); const { networkDropdownOpen, showNetworkDropdown, hideNetworkDropdown, disabled, disableNetworkIndicator, } = this.props; if (disabled || disableNetworkIndicator) { return; } if (networkDropdownOpen === false) { this.context.trackEvent({ category: EVENT.CATEGORIES.NAVIGATION, event: EVENT_NAMES.NAV_NETWORK_MENU_OPENED, properties: {}, }); showNetworkDropdown(); } else { hideNetworkDropdown(); } } renderAccountMenu() { const { isUnlocked, toggleAccountMenu, selectedAddress, disabled, isAccountMenuOpen, ///: BEGIN:ONLY_INCLUDE_IN(flask) unreadNotificationsCount, ///: END:ONLY_INCLUDE_IN } = this.props; return ( isUnlocked && ( ) ); } render() { const { history, hideNetworkIndicator, disableNetworkIndicator, disabled, onClick, } = this.props; return (
{ if (onClick) { await onClick(); } history.push(DEFAULT_ROUTE); }} />
{!hideNetworkIndicator && (
this.handleNetworkIndicatorClick(event)} disabled={disabled || disableNetworkIndicator} />
)} {this.renderAccountMenu()}
); } }