mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
UX - Update all copy icons (#17445)
This commit is contained in:
parent
8aa3263b82
commit
145cf1ec01
@ -32,20 +32,10 @@ exports[`SelectedAccount Component should match snapshot 1`] = `
|
|||||||
<div
|
<div
|
||||||
class="selected-account__copy"
|
class="selected-account__copy"
|
||||||
>
|
>
|
||||||
<svg
|
<div
|
||||||
fill="none"
|
class="box mm-icon mm-icon--size-sm box--flex-direction-row box--color-icon-alternative"
|
||||||
height="11"
|
style="mask-image: url('./images/icons/copy.svg');"
|
||||||
viewBox="0 0 11 11"
|
/>
|
||||||
width="11"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
clip-rule="evenodd"
|
|
||||||
d="M0 0H1H9V1H1V9H0V0ZM2 2H11V11H2V2ZM3 3H10V10H3V3Z"
|
|
||||||
fill="var(--color-icon-alternative)"
|
|
||||||
fill-rule="evenodd"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -4,9 +4,10 @@ import copyToClipboard from 'copy-to-clipboard';
|
|||||||
import { shortenAddress } from '../../../helpers/utils/util';
|
import { shortenAddress } from '../../../helpers/utils/util';
|
||||||
|
|
||||||
import Tooltip from '../../ui/tooltip';
|
import Tooltip from '../../ui/tooltip';
|
||||||
import CopyIcon from '../../ui/icon/copy-icon.component';
|
|
||||||
import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils';
|
import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils';
|
||||||
import { SECOND } from '../../../../shared/constants/time';
|
import { SECOND } from '../../../../shared/constants/time';
|
||||||
|
import { Icon, ICON_NAMES, ICON_SIZES } from '../../component-library';
|
||||||
|
import { COLORS } from '../../../helpers/constants/design-system';
|
||||||
|
|
||||||
class SelectedAccount extends Component {
|
class SelectedAccount extends Component {
|
||||||
state = {
|
state = {
|
||||||
@ -64,7 +65,15 @@ class SelectedAccount extends Component {
|
|||||||
<div className="selected-account__address">
|
<div className="selected-account__address">
|
||||||
{shortenAddress(checksummedAddress)}
|
{shortenAddress(checksummedAddress)}
|
||||||
<div className="selected-account__copy">
|
<div className="selected-account__copy">
|
||||||
<CopyIcon size={11} color="var(--color-icon-alternative)" />
|
<Icon
|
||||||
|
name={
|
||||||
|
this.state.copied
|
||||||
|
? ICON_NAMES.COPY_SUCCESS
|
||||||
|
: ICON_NAMES.COPY
|
||||||
|
}
|
||||||
|
size={ICON_SIZES.SM}
|
||||||
|
color={COLORS.ICON_ALTERNATIVE}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import React, { useContext } from 'react';
|
import React, { useContext } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import Tooltip from '../../../../../ui/tooltip/tooltip';
|
import Tooltip from '../../../../../ui/tooltip/tooltip';
|
||||||
import CopyIcon from '../../../../../ui/icon/copy-icon.component';
|
|
||||||
import { I18nContext } from '../../../../../../contexts/i18n';
|
import { I18nContext } from '../../../../../../contexts/i18n';
|
||||||
|
|
||||||
import { useCopyToClipboard } from '../../../../../../hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '../../../../../../hooks/useCopyToClipboard';
|
||||||
|
import { Icon, ICON_NAMES } from '../../../../../component-library';
|
||||||
|
import { COLORS } from '../../../../../../helpers/constants/design-system';
|
||||||
|
|
||||||
const CopyRawData = ({ data }) => {
|
const CopyRawData = ({ data }) => {
|
||||||
const t = useContext(I18nContext);
|
const t = useContext(I18nContext);
|
||||||
@ -20,7 +21,10 @@ const CopyRawData = ({ data }) => {
|
|||||||
className="copy-raw-data__button"
|
className="copy-raw-data__button"
|
||||||
>
|
>
|
||||||
<div className="copy-raw-data__icon">
|
<div className="copy-raw-data__icon">
|
||||||
<CopyIcon size={12} color="var(--color-icon-default)" />
|
<Icon
|
||||||
|
name={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
|
color={COLORS.ICON_DEFAULT}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="copy-raw-data__label">
|
<div className="copy-raw-data__label">
|
||||||
{t('copyRawTransactionData')}
|
{t('copyRawTransactionData')}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import Copy from '../icon/copy-icon.component';
|
|
||||||
import { useI18nContext } from '../../../hooks/useI18nContext';
|
import { useI18nContext } from '../../../hooks/useI18nContext';
|
||||||
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
||||||
import { exportAsFile } from '../../../helpers/utils/export-utils';
|
import { exportAsFile } from '../../../helpers/utils/export-utils';
|
||||||
|
import { Icon, ICON_NAMES } from '../../component-library';
|
||||||
|
|
||||||
function ExportTextContainer({
|
function ExportTextContainer({
|
||||||
text = '',
|
text = '',
|
||||||
@ -28,7 +28,7 @@ function ExportTextContainer({
|
|||||||
handleCopy(text);
|
handleCopy(text);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Copy size={17} color="var(--color-primary-default)" />
|
<Icon name={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY} />
|
||||||
<div className="export-text-container__button-text">
|
<div className="export-text-container__button-text">
|
||||||
{copied ? t('copiedExclamation') : t('copyToClipboard')}
|
{copied ? t('copiedExclamation') : t('copyToClipboard')}
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,7 +2,6 @@ import { Story, Canvas, ArgsTable } from '@storybook/addon-docs';
|
|||||||
|
|
||||||
import IconCaretLeft from './icon-caret-left.js';
|
import IconCaretLeft from './icon-caret-left.js';
|
||||||
import Approve from './approve-icon.component';
|
import Approve from './approve-icon.component';
|
||||||
import CopyIcon from './copy-icon.component';
|
|
||||||
import InfoIcon from './info-icon.component';
|
import InfoIcon from './info-icon.component';
|
||||||
import InfoIconInverted from './info-icon-inverted.component';
|
import InfoIconInverted from './info-icon-inverted.component';
|
||||||
import Interaction from './interaction-icon.component';
|
import Interaction from './interaction-icon.component';
|
||||||
@ -175,14 +174,6 @@ Use the `className` prop to add an additional class to the icon. This additional
|
|||||||
|
|
||||||
<ArgsTable of={SwapIconComponent} />
|
<ArgsTable of={SwapIconComponent} />
|
||||||
|
|
||||||
## CopyIcon
|
|
||||||
|
|
||||||
<Canvas>
|
|
||||||
<Story id="components-ui-icon--copy-icon-story" />
|
|
||||||
</Canvas>
|
|
||||||
|
|
||||||
<ArgsTable of={CopyIcon} />
|
|
||||||
|
|
||||||
## Preloader
|
## Preloader
|
||||||
|
|
||||||
<Canvas>
|
<Canvas>
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
|
|
||||||
const Copy = ({ className, size, color }) => (
|
|
||||||
<svg
|
|
||||||
className={className}
|
|
||||||
width={size}
|
|
||||||
height={size}
|
|
||||||
viewBox="0 0 11 11"
|
|
||||||
fill="none"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fillRule="evenodd"
|
|
||||||
clipRule="evenodd"
|
|
||||||
d="M0 0H1H9V1H1V9H0V0ZM2 2H11V11H2V2ZM3 3H10V10H3V3Z"
|
|
||||||
fill={color}
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
);
|
|
||||||
|
|
||||||
Copy.defaultProps = {
|
|
||||||
className: undefined,
|
|
||||||
};
|
|
||||||
|
|
||||||
Copy.propTypes = {
|
|
||||||
/**
|
|
||||||
* Additional className
|
|
||||||
*/
|
|
||||||
className: PropTypes.string,
|
|
||||||
/**
|
|
||||||
* Size of the icon should adhere to 8px grid. e.g: 8, 16, 24, 32, 40
|
|
||||||
*/
|
|
||||||
size: PropTypes.number.isRequired,
|
|
||||||
/**
|
|
||||||
* Color of the icon should be a valid design system color and is required
|
|
||||||
*/
|
|
||||||
color: PropTypes.string.isRequired,
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Copy;
|
|
@ -12,7 +12,6 @@ import Box from '../box';
|
|||||||
import README from './README.mdx';
|
import README from './README.mdx';
|
||||||
|
|
||||||
import Approve from './approve-icon.component';
|
import Approve from './approve-icon.component';
|
||||||
import CopyIcon from './copy-icon.component';
|
|
||||||
import InfoIcon from './info-icon.component';
|
import InfoIcon from './info-icon.component';
|
||||||
import InfoIconInverted from './info-icon-inverted.component';
|
import InfoIconInverted from './info-icon-inverted.component';
|
||||||
import Interaction from './interaction-icon.component';
|
import Interaction from './interaction-icon.component';
|
||||||
@ -159,7 +158,6 @@ export const DefaultStory = (args) => (
|
|||||||
<IconItem Component={<InfoIconInverted {...args} />} />
|
<IconItem Component={<InfoIconInverted {...args} />} />
|
||||||
<IconItem Component={<SunCheck {...args} />} />
|
<IconItem Component={<SunCheck {...args} />} />
|
||||||
<IconItem Component={<SunCheck {...args} reverseColors />} />
|
<IconItem Component={<SunCheck {...args} reverseColors />} />
|
||||||
<IconItem Component={<CopyIcon {...args} />} />
|
|
||||||
<IconItem Component={<Preloader {...args} />} />
|
<IconItem Component={<Preloader {...args} />} />
|
||||||
<IconItem Component={<IconEye {...args} />} />
|
<IconItem Component={<IconEye {...args} />} />
|
||||||
<IconItem Component={<IconEyeSlash {...args} />} />
|
<IconItem Component={<IconEyeSlash {...args} />} />
|
||||||
@ -281,13 +279,6 @@ SunCheckStory.argTypes = {
|
|||||||
};
|
};
|
||||||
SunCheckStory.storyName = 'SunCheck';
|
SunCheckStory.storyName = 'SunCheck';
|
||||||
|
|
||||||
export const CopyIconStory = (args) => <CopyIcon {...args} />;
|
|
||||||
CopyIconStory.args = {
|
|
||||||
size: 40,
|
|
||||||
color: 'var(--color-icon-default)',
|
|
||||||
};
|
|
||||||
CopyIconStory.storyName = 'CopyIcon';
|
|
||||||
|
|
||||||
export const PreloaderStory = (args) => <Preloader {...args} />;
|
export const PreloaderStory = (args) => <Preloader {...args} />;
|
||||||
PreloaderStory.args = {
|
PreloaderStory.args = {
|
||||||
size: 40,
|
size: 40,
|
||||||
|
@ -8,10 +8,10 @@ import Popover from '../popover';
|
|||||||
import Button from '../button';
|
import Button from '../button';
|
||||||
import Identicon from '../identicon';
|
import Identicon from '../identicon';
|
||||||
import { shortenAddress } from '../../../helpers/utils/util';
|
import { shortenAddress } from '../../../helpers/utils/util';
|
||||||
import CopyIcon from '../icon/copy-icon.component';
|
|
||||||
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
||||||
import { getTokenList, getBlockExplorerLinkText } from '../../../selectors';
|
import { getTokenList, getBlockExplorerLinkText } from '../../../selectors';
|
||||||
import { NETWORKS_ROUTE } from '../../../helpers/constants/routes';
|
import { NETWORKS_ROUTE } from '../../../helpers/constants/routes';
|
||||||
|
import { ButtonIcon, ICON_NAMES, ICON_SIZES } from '../../component-library';
|
||||||
|
|
||||||
const NicknamePopover = ({
|
const NicknamePopover = ({
|
||||||
address,
|
address,
|
||||||
@ -62,15 +62,11 @@ const NicknamePopover = ({
|
|||||||
position="bottom"
|
position="bottom"
|
||||||
title={copied ? t('copiedExclamation') : t('copyToClipboard')}
|
title={copied ? t('copiedExclamation') : t('copyToClipboard')}
|
||||||
>
|
>
|
||||||
<button
|
<ButtonIcon
|
||||||
type="link"
|
iconName={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
onClick={() => {
|
size={ICON_SIZES.SM}
|
||||||
handleCopy(address);
|
onClick={() => handleCopy(address)}
|
||||||
}}
|
/>
|
||||||
title=""
|
|
||||||
>
|
|
||||||
<CopyIcon size={11} color="var(--color-icon-default)" />
|
|
||||||
</button>
|
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -28,18 +28,12 @@
|
|||||||
&__address-container {
|
&__address-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
&__tooltip-wrapper {
|
&__tooltip-wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
.qr-code__copy-icon__svg {
|
|
||||||
fill: var(--color-primary-default);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&__address {
|
&__address {
|
||||||
@ -51,15 +45,4 @@
|
|||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__copy-icon {
|
|
||||||
height: 13px;
|
|
||||||
padding: 17px 0;
|
|
||||||
position: absolute;
|
|
||||||
right: 24px;
|
|
||||||
|
|
||||||
&__svg {
|
|
||||||
fill: var(--color-icon-default);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@ import { isHexPrefixed } from 'ethereumjs-util';
|
|||||||
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
||||||
import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils';
|
import { toChecksumHexAddress } from '../../../../shared/modules/hexstring-utils';
|
||||||
import Tooltip from '../tooltip';
|
import Tooltip from '../tooltip';
|
||||||
import CopyIcon from '../icon/copy-icon.component';
|
|
||||||
import { useI18nContext } from '../../../hooks/useI18nContext';
|
import { useI18nContext } from '../../../hooks/useI18nContext';
|
||||||
|
import { Icon, ICON_NAMES, ICON_SIZES } from '../../component-library';
|
||||||
|
|
||||||
export default connect(mapStateToProps)(QrCodeView);
|
export default connect(mapStateToProps)(QrCodeView);
|
||||||
|
|
||||||
@ -68,9 +68,11 @@ function QrCodeView(props) {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="qr-code__address">{toChecksumHexAddress(data)}</div>
|
<div className="qr-code__address">{toChecksumHexAddress(data)}</div>
|
||||||
<div className="qr-code__copy-icon">
|
<Icon
|
||||||
<CopyIcon size={11} className="qr-code__copy-icon__svg" color="" />
|
name={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
</div>
|
size={ICON_SIZES.SM}
|
||||||
|
marginInlineStart={3}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
@ -11,7 +11,6 @@ import Box from '../../../components/ui/box';
|
|||||||
import Button from '../../../components/ui/button';
|
import Button from '../../../components/ui/button';
|
||||||
import EditGasFeeButton from '../../../components/app/edit-gas-fee-button';
|
import EditGasFeeButton from '../../../components/app/edit-gas-fee-button';
|
||||||
import MultiLayerFeeMessage from '../../../components/app/multilayer-fee-message';
|
import MultiLayerFeeMessage from '../../../components/app/multilayer-fee-message';
|
||||||
import CopyIcon from '../../../components/ui/icon/copy-icon.component';
|
|
||||||
import {
|
import {
|
||||||
TYPOGRAPHY,
|
TYPOGRAPHY,
|
||||||
FONT_WEIGHT,
|
FONT_WEIGHT,
|
||||||
@ -20,13 +19,13 @@ import {
|
|||||||
COLORS,
|
COLORS,
|
||||||
DISPLAY,
|
DISPLAY,
|
||||||
} from '../../../helpers/constants/design-system';
|
} from '../../../helpers/constants/design-system';
|
||||||
import { SECOND } from '../../../../shared/constants/time';
|
|
||||||
import { ConfirmPageContainerWarning } from '../../../components/app/confirm-page-container/confirm-page-container-content';
|
import { ConfirmPageContainerWarning } from '../../../components/app/confirm-page-container/confirm-page-container-content';
|
||||||
import GasDetailsItem from '../../../components/app/gas-details-item';
|
import GasDetailsItem from '../../../components/app/gas-details-item';
|
||||||
import LedgerInstructionField from '../../../components/app/ledger-instruction-field';
|
import LedgerInstructionField from '../../../components/app/ledger-instruction-field';
|
||||||
import { TokenStandard } from '../../../../shared/constants/transaction';
|
import { TokenStandard } from '../../../../shared/constants/transaction';
|
||||||
import { CHAIN_IDS, TEST_CHAINS } from '../../../../shared/constants/network';
|
import { CHAIN_IDS, TEST_CHAINS } from '../../../../shared/constants/network';
|
||||||
import ContractDetailsModal from '../../../components/app/modals/contract-details-modal/contract-details-modal';
|
import ContractDetailsModal from '../../../components/app/modals/contract-details-modal/contract-details-modal';
|
||||||
|
import { ICON_NAMES, ButtonIcon } from '../../../components/component-library';
|
||||||
|
|
||||||
export default class ConfirmApproveContent extends Component {
|
export default class ConfirmApproveContent extends Component {
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
@ -210,25 +209,19 @@ export default class ConfirmApproveContent extends Component {
|
|||||||
{displayedAddress}
|
{displayedAddress}
|
||||||
</div>
|
</div>
|
||||||
<div className="confirm-approve-content__medium-text">
|
<div className="confirm-approve-content__medium-text">
|
||||||
<Button
|
<ButtonIcon
|
||||||
type="link"
|
ariaLabel="copy"
|
||||||
className="confirm-approve-content__copy-address"
|
onClick={() => copyToClipboard(toAddress)}
|
||||||
onClick={() => {
|
color={COLORS.ICON_DEFAULT}
|
||||||
this.setState({ copied: true });
|
iconName={
|
||||||
this.copyTimeout = setTimeout(
|
this.state.copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY
|
||||||
() => this.setState({ copied: false }),
|
}
|
||||||
SECOND * 3,
|
|
||||||
);
|
|
||||||
copyToClipboard(toAddress);
|
|
||||||
}}
|
|
||||||
title={
|
title={
|
||||||
this.state.copied
|
this.state.copied
|
||||||
? t('copiedExclamation')
|
? t('copiedExclamation')
|
||||||
: t('copyToClipboard')
|
: t('copyToClipboard')
|
||||||
}
|
}
|
||||||
>
|
/>
|
||||||
<CopyIcon size={14} color="var(--color-icon-default)" />
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,13 +6,14 @@ import classnames from 'classnames';
|
|||||||
import AccountListItem from '../../components/app/account-list-item';
|
import AccountListItem from '../../components/app/account-list-item';
|
||||||
import Identicon from '../../components/ui/identicon';
|
import Identicon from '../../components/ui/identicon';
|
||||||
import Tooltip from '../../components/ui/tooltip';
|
import Tooltip from '../../components/ui/tooltip';
|
||||||
import Copy from '../../components/ui/icon/copy-icon.component';
|
|
||||||
import { PageContainerFooter } from '../../components/ui/page-container';
|
import { PageContainerFooter } from '../../components/ui/page-container';
|
||||||
|
|
||||||
import { EVENT } from '../../../shared/constants/metametrics';
|
import { EVENT } from '../../../shared/constants/metametrics';
|
||||||
import { SECOND } from '../../../shared/constants/time';
|
import { SECOND } from '../../../shared/constants/time';
|
||||||
import { Numeric } from '../../../shared/modules/Numeric';
|
import { Numeric } from '../../../shared/modules/Numeric';
|
||||||
import { EtherDenomination } from '../../../shared/constants/common';
|
import { EtherDenomination } from '../../../shared/constants/common';
|
||||||
|
import { Icon, ICON_NAMES } from '../../components/component-library';
|
||||||
|
import { COLORS } from '../../helpers/constants/design-system';
|
||||||
|
|
||||||
export default class ConfirmDecryptMessage extends Component {
|
export default class ConfirmDecryptMessage extends Component {
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
@ -238,7 +239,10 @@ export default class ConfirmDecryptMessage extends Component {
|
|||||||
<div className="request-decrypt-message__message-copy-text">
|
<div className="request-decrypt-message__message-copy-text">
|
||||||
{t('decryptCopy')}
|
{t('decryptCopy')}
|
||||||
</div>
|
</div>
|
||||||
<Copy size={17} color="var(--color-primary-default)" />
|
<Icon
|
||||||
|
name={hasCopied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
|
color={COLORS.PRIMARY_DEFAULT}
|
||||||
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
|
@ -4,7 +4,6 @@ import PropTypes from 'prop-types';
|
|||||||
import Box from '../../../components/ui/box';
|
import Box from '../../../components/ui/box';
|
||||||
import Button from '../../../components/ui/button';
|
import Button from '../../../components/ui/button';
|
||||||
import Typography from '../../../components/ui/typography';
|
import Typography from '../../../components/ui/typography';
|
||||||
import Copy from '../../../components/ui/icon/copy-icon.component';
|
|
||||||
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '../../../hooks/useCopyToClipboard';
|
||||||
import { useI18nContext } from '../../../hooks/useI18nContext';
|
import { useI18nContext } from '../../../hooks/useI18nContext';
|
||||||
import { ONBOARDING_CONFIRM_SRP_ROUTE } from '../../../helpers/constants/routes';
|
import { ONBOARDING_CONFIRM_SRP_ROUTE } from '../../../helpers/constants/routes';
|
||||||
@ -13,6 +12,7 @@ import {
|
|||||||
TYPOGRAPHY,
|
TYPOGRAPHY,
|
||||||
JUSTIFY_CONTENT,
|
JUSTIFY_CONTENT,
|
||||||
FONT_WEIGHT,
|
FONT_WEIGHT,
|
||||||
|
COLORS,
|
||||||
} from '../../../helpers/constants/design-system';
|
} from '../../../helpers/constants/design-system';
|
||||||
import {
|
import {
|
||||||
ThreeStepProgressBar,
|
ThreeStepProgressBar,
|
||||||
@ -20,6 +20,7 @@ import {
|
|||||||
} from '../../../components/app/step-progress-bar';
|
} from '../../../components/app/step-progress-bar';
|
||||||
import { EVENT_NAMES, EVENT } from '../../../../shared/constants/metametrics';
|
import { EVENT_NAMES, EVENT } from '../../../../shared/constants/metametrics';
|
||||||
import { MetaMetricsContext } from '../../../contexts/metametrics';
|
import { MetaMetricsContext } from '../../../contexts/metametrics';
|
||||||
|
import { Icon, ICON_NAMES } from '../../../components/component-library';
|
||||||
import RecoveryPhraseChips from './recovery-phrase-chips';
|
import RecoveryPhraseChips from './recovery-phrase-chips';
|
||||||
|
|
||||||
export default function RecoveryPhrase({ secretRecoveryPhrase }) {
|
export default function RecoveryPhrase({ secretRecoveryPhrase }) {
|
||||||
@ -115,9 +116,10 @@ export default function RecoveryPhrase({ secretRecoveryPhrase }) {
|
|||||||
handleCopy(secretRecoveryPhrase);
|
handleCopy(secretRecoveryPhrase);
|
||||||
}}
|
}}
|
||||||
icon={
|
icon={
|
||||||
copied ? null : (
|
<Icon
|
||||||
<Copy size={20} color="var(--color-primary-default)" />
|
name={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
)
|
color={COLORS.PRIMARY_DEFAULT}
|
||||||
|
/>
|
||||||
}
|
}
|
||||||
className="recovery-phrase__footer__copy-and-hide__button recovery-phrase__footer__copy-and-hide__button__copy-to-clipboard"
|
className="recovery-phrase__footer__copy-and-hide__button recovery-phrase__footer__copy-and-hide__button__copy-to-clipboard"
|
||||||
type="link"
|
type="link"
|
||||||
|
@ -3,12 +3,17 @@ import PropTypes from 'prop-types';
|
|||||||
import { Redirect } from 'react-router-dom';
|
import { Redirect } from 'react-router-dom';
|
||||||
|
|
||||||
import Identicon from '../../../../components/ui/identicon';
|
import Identicon from '../../../../components/ui/identicon';
|
||||||
import Copy from '../../../../components/ui/icon/copy-icon.component';
|
|
||||||
import Button from '../../../../components/ui/button/button.component';
|
import Button from '../../../../components/ui/button/button.component';
|
||||||
|
import {
|
||||||
|
ButtonIcon,
|
||||||
|
ICON_NAMES,
|
||||||
|
ICON_SIZES,
|
||||||
|
} from '../../../../components/component-library';
|
||||||
|
|
||||||
import Tooltip from '../../../../components/ui/tooltip';
|
import Tooltip from '../../../../components/ui/tooltip';
|
||||||
import { useI18nContext } from '../../../../hooks/useI18nContext';
|
import { useI18nContext } from '../../../../hooks/useI18nContext';
|
||||||
import { useCopyToClipboard } from '../../../../hooks/useCopyToClipboard';
|
import { useCopyToClipboard } from '../../../../hooks/useCopyToClipboard';
|
||||||
|
import { COLORS } from '../../../../helpers/constants/design-system';
|
||||||
|
|
||||||
function quadSplit(address) {
|
function quadSplit(address) {
|
||||||
return `0x${address
|
return `0x${address
|
||||||
@ -62,14 +67,16 @@ function ViewContact({
|
|||||||
position="bottom"
|
position="bottom"
|
||||||
title={copied ? t('copiedExclamation') : t('copyToClipboard')}
|
title={copied ? t('copiedExclamation') : t('copyToClipboard')}
|
||||||
>
|
>
|
||||||
<button
|
<ButtonIcon
|
||||||
|
ariaLabel="copy"
|
||||||
className="address-book__view-contact__group__static-address--copy-icon"
|
className="address-book__view-contact__group__static-address--copy-icon"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleCopy(checkSummedAddress);
|
handleCopy(checkSummedAddress);
|
||||||
}}
|
}}
|
||||||
>
|
iconName={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
<Copy size={20} color="var(--color-primary-default)" />
|
size={ICON_SIZES.LG}
|
||||||
</button>
|
color={COLORS.PRIMARY_DEFAULT}
|
||||||
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,7 +13,6 @@ import { NETWORK_TYPES } from '../../../shared/constants/network';
|
|||||||
import { ASSET_ROUTE, DEFAULT_ROUTE } from '../../helpers/constants/routes';
|
import { ASSET_ROUTE, DEFAULT_ROUTE } from '../../helpers/constants/routes';
|
||||||
import Tooltip from '../../components/ui/tooltip';
|
import Tooltip from '../../components/ui/tooltip';
|
||||||
import Button from '../../components/ui/button';
|
import Button from '../../components/ui/button';
|
||||||
import CopyIcon from '../../components/ui/icon/copy-icon.component';
|
|
||||||
import Box from '../../components/ui/box';
|
import Box from '../../components/ui/box';
|
||||||
import Typography from '../../components/ui/typography';
|
import Typography from '../../components/ui/typography';
|
||||||
import {
|
import {
|
||||||
@ -25,6 +24,11 @@ import {
|
|||||||
OVERFLOW_WRAP,
|
OVERFLOW_WRAP,
|
||||||
} from '../../helpers/constants/design-system';
|
} from '../../helpers/constants/design-system';
|
||||||
import { isEqualCaseInsensitive } from '../../../shared/modules/string-utils';
|
import { isEqualCaseInsensitive } from '../../../shared/modules/string-utils';
|
||||||
|
import {
|
||||||
|
ButtonIcon,
|
||||||
|
ICON_SIZES,
|
||||||
|
ICON_NAMES,
|
||||||
|
} from '../../components/component-library';
|
||||||
|
|
||||||
export default function TokenDetailsPage() {
|
export default function TokenDetailsPage() {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
@ -132,15 +136,13 @@ export default function TokenDetailsPage() {
|
|||||||
title={copied ? t('copiedExclamation') : t('copyToClipboard')}
|
title={copied ? t('copiedExclamation') : t('copyToClipboard')}
|
||||||
containerClassName="token-details__copy-icon"
|
containerClassName="token-details__copy-icon"
|
||||||
>
|
>
|
||||||
<Button
|
<ButtonIcon
|
||||||
type="link"
|
name={copied ? ICON_NAMES.COPY_SUCCESS : ICON_NAMES.COPY}
|
||||||
className="token-details__copyIcon"
|
className="token-details__copyIcon"
|
||||||
onClick={() => {
|
onClick={() => handleCopy(token.address)}
|
||||||
handleCopy(token.address);
|
color={COLORS.PRIMARY_DEFAULT}
|
||||||
}}
|
size={ICON_SIZES.SM}
|
||||||
>
|
/>
|
||||||
<CopyIcon size={11} color="var(--color-primary-default)" />
|
|
||||||
</Button>
|
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</Box>
|
</Box>
|
||||||
<Typography
|
<Typography
|
||||||
|
Loading…
x
Reference in New Issue
Block a user