1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-23 11:46:13 +02:00
metamask-extension/ui/components/app/edit-gas-fee-popover/edit-gas-fee-popover.js

84 lines
3.2 KiB
JavaScript
Raw Normal View History

import React from 'react';
import { PRIORITY_LEVELS } from '../../../../shared/constants/gas';
import { useI18nContext } from '../../../hooks/useI18nContext';
import { useTransactionModalContext } from '../../../contexts/transaction-modal';
2021-11-23 19:18:44 +01:00
import ErrorMessage from '../../ui/error-message';
import I18nValue from '../../ui/i18n-value';
import LoadingHeartBeat from '../../ui/loading-heartbeat';
import Popover from '../../ui/popover';
import Typography from '../../ui/typography/typography';
import { COLORS } from '../../../helpers/constants/design-system';
2021-11-23 19:18:44 +01:00
import { INSUFFICIENT_FUNDS_ERROR_KEY } from '../../../helpers/constants/error-keys';
import { useGasFeeContext } from '../../../contexts/gasFee';
import EditGasItem from './edit-gas-item';
import NetworkStatus from './network-status';
const EditGasFeePopover = () => {
2021-11-23 19:18:44 +01:00
const { balanceError } = useGasFeeContext();
const t = useI18nContext();
const { closeModal, currentModal } = useTransactionModalContext();
if (currentModal !== 'editGasFee') return null;
return (
<Popover
title={t('editGasFeeModalTitle')}
onClose={() => closeModal('editGasFee')}
className="edit-gas-fee-popover"
>
<>
{process.env.IN_TEST === 'true' ? null : <LoadingHeartBeat />}
<div className="edit-gas-fee-popover__wrapper">
<div className="edit-gas-fee-popover__content">
2021-11-23 19:18:44 +01:00
{balanceError && (
<ErrorMessage errorKey={INSUFFICIENT_FUNDS_ERROR_KEY} />
)}
<div className="edit-gas-fee-popover__content__header">
<span className="edit-gas-fee-popover__content__header-option">
<I18nValue messageKey="gasOption" />
</span>
<span className="edit-gas-fee-popover__content__header-time">
<I18nValue messageKey="time" />
</span>
<span className="edit-gas-fee-popover__content__header-max-fee">
<I18nValue messageKey="maxFee" />
</span>
</div>
<EditGasItem priorityLevel={PRIORITY_LEVELS.LOW} />
<EditGasItem priorityLevel={PRIORITY_LEVELS.MEDIUM} />
<EditGasItem priorityLevel={PRIORITY_LEVELS.HIGH} />
<div className="edit-gas-fee-popover__content__separator" />
<EditGasItem priorityLevel={PRIORITY_LEVELS.DAPP_SUGGESTED} />
<EditGasItem priorityLevel={PRIORITY_LEVELS.CUSTOM} />
<NetworkStatus />
<Typography
className="edit-gas-fee-popover__know-more"
align="center"
color={COLORS.UI4}
fontSize="12px"
>
<I18nValue
messageKey="learmMoreAboutGas"
options={[
<a
key="learnMoreLink"
target="_blank"
rel="noopener noreferrer"
href="https://metamask.zendesk.com/hc/en-us/articles/4404600179227-User-Guide-Gas"
>
<I18nValue messageKey="learnMore" />
</a>,
]}
/>
</Typography>
</div>
</div>
</>
</Popover>
);
};
export default EditGasFeePopover;