1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-29 15:50:28 +01:00
metamask-extension/ui/components/app/confirm-page-container/confirm-page-container-header/confirm-page-container-header.component.js

81 lines
2.5 KiB
JavaScript
Raw Normal View History

import React from 'react';
import PropTypes from 'prop-types';
import {
ENVIRONMENT_TYPE_POPUP,
ENVIRONMENT_TYPE_NOTIFICATION,
} from '../../../../../shared/constants/app';
import { getEnvironmentType } from '../../../../../app/scripts/lib/util';
import NetworkDisplay from '../../network-display';
import Identicon from '../../../ui/identicon';
import { shortenAddress } from '../../../../helpers/utils/util';
import AccountMismatchWarning from '../../../ui/account-mismatch-warning/account-mismatch-warning.component';
import { useI18nContext } from '../../../../hooks/useI18nContext';
import { Icon, IconName } from '../../../component-library';
2020-11-03 00:41:28 +01:00
export default function ConfirmPageContainerHeader({
onEdit,
showEdit,
accountAddress,
showAccountInHeader,
children,
}) {
const t = useI18nContext();
const windowType = getEnvironmentType();
2020-11-03 00:41:28 +01:00
const isFullScreen =
windowType !== ENVIRONMENT_TYPE_NOTIFICATION &&
windowType !== ENVIRONMENT_TYPE_POPUP;
if (!showEdit && isFullScreen) {
return children;
}
return (
<div
className="confirm-page-container-header"
data-testid="header-container"
>
<div className="confirm-page-container-header__row">
2020-11-03 00:41:28 +01:00
{showAccountInHeader ? (
<div className="confirm-page-container-header__address-container">
<div className="confirm-page-container-header__address-identicon">
<Identicon address={accountAddress} diameter={24} />
</div>
<div
className="confirm-page-container-header__address"
data-testid="header-address"
>
2020-11-03 00:41:28 +01:00
{shortenAddress(accountAddress)}
</div>
2020-11-03 00:41:28 +01:00
<AccountMismatchWarning address={accountAddress} />
</div>
) : (
<div
className="confirm-page-container-header__back-button-container"
style={{
visibility: showEdit ? 'initial' : 'hidden',
}}
>
<Icon name={IconName.ArrowLeft} />
2020-11-03 00:41:28 +01:00
<span
data-testid="confirm-page-back-edit-button"
2020-11-03 00:41:28 +01:00
className="confirm-page-container-header__back-button"
onClick={() => onEdit()}
>
{t('edit')}
</span>
</div>
)}
{isFullScreen ? null : <NetworkDisplay />}
</div>
2020-11-03 00:41:28 +01:00
{children}
</div>
);
}
ConfirmPageContainerHeader.propTypes = {
accountAddress: PropTypes.string,
showAccountInHeader: PropTypes.bool,
showEdit: PropTypes.bool,
onEdit: PropTypes.func,
children: PropTypes.node,
};