mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-23 10:30:04 +01:00
78f4684b2a
* MetaMetrics: add EVENT.CATEGORIES const * MetaMetrics: add EVENT.CATEGORIES.INPAGE_PROVIDER * MetaMetrics: add EVENT.CATEGORIES.AUTH * MetaMetrics: add EVENT.CATEGORIES.ACCOUNTS pt. 1 * MetaMetrics: add EVENT.CATEGORIES.ACCOUNTS pt. 2 confirm we want to use 'Accounts' instead of 'Account' * MetaMetrics: add EVENT.CATEGORIES.MESSAGES * MetaMetrics: add EVENT.CATEGORIES.RETENTION const * MetaMetrics: add EVENT.CATEGORIES.SETTINGS * MetaMask: add missing EVENT.CATEGORIES.SNAPS * MetaMetrics: add EVENT.CATEGORIES.WALLET const * MetaMetrics: add EVENT.CATEGORIES.ONBOARDING const * MetaMetrics: add EVENT.CATEGORIES.ONBOARDING & EVENT.CATEGORIES.TRANSACTIONS consts * MetaMetrics: use EVENT.CATEGORIES * ducks/swaps: revert slice name * MetaMetrics: add missing EVENT.CATEGORIES.NETWORK
69 lines
2.3 KiB
JavaScript
69 lines
2.3 KiB
JavaScript
import React, { useState, useContext } from 'react';
|
|
import browser from 'webextension-polyfill';
|
|
import { useHistory } from 'react-router-dom';
|
|
import { useSelector } from 'react-redux';
|
|
import SelectedAccount from '../selected-account';
|
|
import ConnectedStatusIndicator from '../connected-status-indicator';
|
|
import { getEnvironmentType } from '../../../../app/scripts/lib/util';
|
|
import { ENVIRONMENT_TYPE_POPUP } from '../../../../shared/constants/app';
|
|
import { EVENT } from '../../../../shared/constants/metametrics';
|
|
import { CONNECTED_ACCOUNTS_ROUTE } from '../../../helpers/constants/routes';
|
|
import { useI18nContext } from '../../../hooks/useI18nContext';
|
|
import { getOriginOfCurrentTab } from '../../../selectors';
|
|
import { MetaMetricsContext } from '../../../contexts/metametrics';
|
|
import AccountOptionsMenu from './account-options-menu';
|
|
|
|
export default function MenuBar() {
|
|
const t = useI18nContext();
|
|
const trackEvent = useContext(MetaMetricsContext);
|
|
const history = useHistory();
|
|
const [
|
|
accountOptionsButtonElement,
|
|
setAccountOptionsButtonElement,
|
|
] = useState(null);
|
|
const [accountOptionsMenuOpen, setAccountOptionsMenuOpen] = useState(false);
|
|
const origin = useSelector(getOriginOfCurrentTab);
|
|
|
|
const showStatus =
|
|
getEnvironmentType() === ENVIRONMENT_TYPE_POPUP &&
|
|
origin &&
|
|
origin !== browser.runtime.id;
|
|
|
|
return (
|
|
<div className="menu-bar">
|
|
{showStatus ? (
|
|
<ConnectedStatusIndicator
|
|
onClick={() => history.push(CONNECTED_ACCOUNTS_ROUTE)}
|
|
/>
|
|
) : null}
|
|
|
|
<SelectedAccount />
|
|
|
|
<button
|
|
className="fas fa-ellipsis-v menu-bar__account-options"
|
|
data-testid="account-options-menu-button"
|
|
ref={setAccountOptionsButtonElement}
|
|
title={t('accountOptions')}
|
|
onClick={() => {
|
|
trackEvent({
|
|
event: 'Opened Account Options',
|
|
category: EVENT.CATEGORIES.NAVIGATION,
|
|
properties: {
|
|
action: 'Home',
|
|
legacy_event: true,
|
|
},
|
|
});
|
|
setAccountOptionsMenuOpen(true);
|
|
}}
|
|
/>
|
|
|
|
{accountOptionsMenuOpen && (
|
|
<AccountOptionsMenu
|
|
anchorElement={accountOptionsButtonElement}
|
|
onClose={() => setAccountOptionsMenuOpen(false)}
|
|
/>
|
|
)}
|
|
</div>
|
|
);
|
|
}
|