text: import { getEnvironmentType } from '@app/scripts/lib/util';
  import { getMostRecentOverviewPage } from '@reducer/history/history';
  import { ENVIRONMENT_TYPE_POPUP } from '@shared/constants/app';
  import {
    isBurnAddress,
    isValidHexAddress,
  } from '@shared/modules/hexstring-utils';
  import {
    ABOUT_US_ROUTE,
    ADVANCED_ROUTE,
    ALERTS_ROUTE,
    CONTACT_ADD_ROUTE,
    CONTACT_EDIT_ROUTE,
    CONTACT_LIST_ROUTE,
    CONTACT_VIEW_ROUTE,
    GENERAL_ROUTE,
    NETWORKS_FORM_ROUTE,
    NETWORKS_ROUTE,
    SECURITY_ROUTE,
    SETTINGS_ROUTE,
  } from '@view/helpers/constants/routes';
  import { getAddressBookEntryName } from '@view/selectors';
  import { connect } from 'react-redux';
  import { withRouter } from 'react-router-dom';
  import { compose } from 'redux';
  import Settings from './component';
  
  const ROUTES_TO_I18N_KEYS = {
    [ABOUT_US_ROUTE]: 'about',
    [ADVANCED_ROUTE]: 'advanced',
    [ALERTS_ROUTE]: 'alerts',
    [GENERAL_ROUTE]: 'general',
    [CONTACT_ADD_ROUTE]: 'newContact',
    [CONTACT_EDIT_ROUTE]: 'editContact',
    [CONTACT_LIST_ROUTE]: 'contacts',
    [CONTACT_VIEW_ROUTE]: 'viewContact',
    [NETWORKS_ROUTE]: 'networks',
    [NETWORKS_FORM_ROUTE]: 'networks',
    [SECURITY_ROUTE]: 'securityAndPrivacy',
  };
  
  const mapStateToProps = (state, ownProps) => {
    const { location } = ownProps;
    const { pathname } = location;
    const pathNameTail = pathname.match(/[^/]+$/u)[0];
  
    const isAddressEntryPage = pathNameTail.includes('0x');
    const isAddContactPage = Boolean(pathname.match(CONTACT_ADD_ROUTE));
    const isEditContactPage = Boolean(pathname.match(CONTACT_EDIT_ROUTE));
    const isNetworksFormPage = Boolean(pathname.match(NETWORKS_FORM_ROUTE));
  
    const isPopup = getEnvironmentType() === ENVIRONMENT_TYPE_POPUP;
    const pathnameI18nKey = ROUTES_TO_I18N_KEYS[pathname];
  
    let backRoute = SETTINGS_ROUTE;
    if (isEditContactPage) {
      backRoute = `${CONTACT_VIEW_ROUTE}/${pathNameTail}`;
    } else if (isAddressEntryPage || isAddContactPage) {
      backRoute = CONTACT_LIST_ROUTE;
    } else if (isNetworksFormPage) {
      backRoute = NETWORKS_ROUTE;
    }
  
    let initialBreadCrumbRoute;
    let initialBreadCrumbKey;
  
    const addressName = getAddressBookEntryName(
      state,
      !isBurnAddress(pathNameTail) &&
        isValidHexAddress(pathNameTail, { mixedCaseUseChecksum: true })
        ? pathNameTail
        : '',
    );
  
    return {
      isAddressEntryPage,
      backRoute,
      currentPath: pathname,
      isPopup,
      pathnameI18nKey,
      addressName,
      initialBreadCrumbRoute,
      initialBreadCrumbKey,
      mostRecentOverviewPage: getMostRecentOverviewPage(state),
    };
  };
  
  export default compose(withRouter, connect(mapStateToProps))(Settings);
  