1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Persisting token address via URL (Token Details page) (#13807)

This commit is contained in:
ryanml 2022-03-02 09:01:53 -07:00 committed by GitHub
parent 6d54897cfb
commit 0a01c0e260
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 8 additions and 13 deletions

View File

@ -125,7 +125,7 @@ const PATH_NAME_MAP = {
[IMPORT_ACCOUNT_ROUTE]: 'Import Account Page', [IMPORT_ACCOUNT_ROUTE]: 'Import Account Page',
[CONNECT_HARDWARE_ROUTE]: 'Connect Hardware Wallet Page', [CONNECT_HARDWARE_ROUTE]: 'Connect Hardware Wallet Page',
[SEND_ROUTE]: 'Send Page', [SEND_ROUTE]: 'Send Page',
[TOKEN_DETAILS]: 'Token Details Page', [`${TOKEN_DETAILS}/:address`]: 'Token Details Page',
[`${CONNECT_ROUTE}/:id`]: 'Connect To Site Confirmation Page', [`${CONNECT_ROUTE}/:id`]: 'Connect To Site Confirmation Page',
[`${CONNECT_ROUTE}/:id${CONNECT_CONFIRM_PERMISSIONS_ROUTE}`]: 'Grant Connected Site Permissions Confirmation Page', [`${CONNECT_ROUTE}/:id${CONNECT_CONFIRM_PERMISSIONS_ROUTE}`]: 'Grant Connected Site Permissions Confirmation Page',
[CONNECTED_ROUTE]: 'Sites Connected To This Account Page', [CONNECTED_ROUTE]: 'Sites Connected To This Account Page',

View File

@ -68,10 +68,7 @@ export default function TokenAsset({ token }) {
dispatch(showModal({ name: 'ACCOUNT_DETAILS' })); dispatch(showModal({ name: 'ACCOUNT_DETAILS' }));
}} }}
onViewTokenDetails={() => { onViewTokenDetails={() => {
history.push({ history.push(`${TOKEN_DETAILS}/${token.address}`);
pathname: TOKEN_DETAILS,
state: { tokenAddress: token.address },
});
}} }}
tokenSymbol={token.symbol} tokenSymbol={token.symbol}
/> />

View File

@ -155,7 +155,7 @@ export default class Routes extends Component {
exact exact
/> />
<Authenticated <Authenticated
path={TOKEN_DETAILS} path={`${TOKEN_DETAILS}/:address/`}
component={TokenDetailsPage} component={TokenDetailsPage}
exact exact
/> />

View File

@ -1,6 +1,6 @@
import React, { useContext } from 'react'; import React, { useContext } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { Redirect, useHistory } from 'react-router-dom'; import { Redirect, useHistory, useParams } from 'react-router-dom';
import { getTokens } from '../../ducks/metamask/metamask'; import { getTokens } from '../../ducks/metamask/metamask';
import { getUseTokenDetection, getTokenList } from '../../selectors'; import { getUseTokenDetection, getTokenList } from '../../selectors';
import { useCopyToClipboard } from '../../hooks/useCopyToClipboard'; import { useCopyToClipboard } from '../../hooks/useCopyToClipboard';
@ -34,7 +34,7 @@ export default function TokenDetailsPage() {
const tokenList = useSelector(getTokenList); const tokenList = useSelector(getTokenList);
const useTokenDetection = useSelector(getUseTokenDetection); const useTokenDetection = useSelector(getUseTokenDetection);
const tokenAddress = history?.location?.state?.tokenAddress; const { address: tokenAddress } = useParams();
const tokenMetadata = Object.values(tokenList).find((token) => const tokenMetadata = Object.values(tokenList).find((token) =>
isEqualCaseInsensitive(token.address, tokenAddress), isEqualCaseInsensitive(token.address, tokenAddress),
); );

View File

@ -111,11 +111,9 @@ jest.mock('react-router-dom', () => {
...original, ...original,
useHistory: () => ({ useHistory: () => ({
push: jest.fn(), push: jest.fn(),
location: { }),
state: { useParams: () => ({
tokenAddress: testTokenAddress, address: testTokenAddress,
},
},
}), }),
}; };
}); });