mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
updated initial state of new imported nfts to expanded (#17285)
This commit is contained in:
parent
0fdff8955c
commit
90d2ca0727
@ -19,10 +19,19 @@ import {
|
|||||||
getTokenStandardAndDetails,
|
getTokenStandardAndDetails,
|
||||||
ignoreTokens,
|
ignoreTokens,
|
||||||
setNewCollectibleAddedMessage,
|
setNewCollectibleAddedMessage,
|
||||||
|
updateCollectibleDropDownState,
|
||||||
} from '../../store/actions';
|
} from '../../store/actions';
|
||||||
import FormField from '../../components/ui/form-field';
|
import FormField from '../../components/ui/form-field';
|
||||||
import { getIsMainnet, getUseNftDetection } from '../../selectors';
|
import {
|
||||||
import { getCollectiblesDetectionNoticeDismissed } from '../../ducks/metamask/metamask';
|
getCurrentChainId,
|
||||||
|
getIsMainnet,
|
||||||
|
getSelectedAddress,
|
||||||
|
getUseNftDetection,
|
||||||
|
} from '../../selectors';
|
||||||
|
import {
|
||||||
|
getCollectiblesDetectionNoticeDismissed,
|
||||||
|
getCollectiblesDropdownState,
|
||||||
|
} from '../../ducks/metamask/metamask';
|
||||||
import CollectiblesDetectionNotice from '../../components/app/collectibles-detection-notice';
|
import CollectiblesDetectionNotice from '../../components/app/collectibles-detection-notice';
|
||||||
import { MetaMetricsContext } from '../../contexts/metametrics';
|
import { MetaMetricsContext } from '../../contexts/metametrics';
|
||||||
import { AssetType } from '../../../shared/constants/transaction';
|
import { AssetType } from '../../../shared/constants/transaction';
|
||||||
@ -37,12 +46,15 @@ export default function AddCollectible() {
|
|||||||
const collectibleDetectionNoticeDismissed = useSelector(
|
const collectibleDetectionNoticeDismissed = useSelector(
|
||||||
getCollectiblesDetectionNoticeDismissed,
|
getCollectiblesDetectionNoticeDismissed,
|
||||||
);
|
);
|
||||||
|
const collectiblesDropdownState = useSelector(getCollectiblesDropdownState);
|
||||||
|
const selectedAddress = useSelector(getSelectedAddress);
|
||||||
|
const chainId = useSelector(getCurrentChainId);
|
||||||
const addressEnteredOnImportTokensPage =
|
const addressEnteredOnImportTokensPage =
|
||||||
history?.location?.state?.addressEnteredOnImportTokensPage;
|
history?.location?.state?.addressEnteredOnImportTokensPage;
|
||||||
const contractAddressToConvertFromTokenToCollectible =
|
const contractAddressToConvertFromTokenToCollectible =
|
||||||
history?.location?.state?.tokenAddress;
|
history?.location?.state?.tokenAddress;
|
||||||
|
|
||||||
const [address, setAddress] = useState(
|
const [collectibleAddress, setCollectibleAddress] = useState(
|
||||||
addressEnteredOnImportTokensPage ??
|
addressEnteredOnImportTokensPage ??
|
||||||
contractAddressToConvertFromTokenToCollectible ??
|
contractAddressToConvertFromTokenToCollectible ??
|
||||||
'',
|
'',
|
||||||
@ -54,7 +66,19 @@ export default function AddCollectible() {
|
|||||||
|
|
||||||
const handleAddCollectible = async () => {
|
const handleAddCollectible = async () => {
|
||||||
try {
|
try {
|
||||||
await dispatch(addNftVerifyOwnership(address, tokenId));
|
await dispatch(addNftVerifyOwnership(collectibleAddress, tokenId));
|
||||||
|
const newCollectibleDropdownState = {
|
||||||
|
...collectiblesDropdownState,
|
||||||
|
[selectedAddress]: {
|
||||||
|
...collectiblesDropdownState?.[selectedAddress],
|
||||||
|
[chainId]: {
|
||||||
|
...collectiblesDropdownState?.[selectedAddress]?.[chainId],
|
||||||
|
[collectibleAddress]: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
dispatch(updateCollectibleDropDownState(newCollectibleDropdownState));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
const { message } = error;
|
const { message } = error;
|
||||||
dispatch(setNewCollectibleAddedMessage(message));
|
dispatch(setNewCollectibleAddedMessage(message));
|
||||||
@ -72,7 +96,7 @@ export default function AddCollectible() {
|
|||||||
dispatch(setNewCollectibleAddedMessage('success'));
|
dispatch(setNewCollectibleAddedMessage('success'));
|
||||||
|
|
||||||
const tokenDetails = await getTokenStandardAndDetails(
|
const tokenDetails = await getTokenStandardAndDetails(
|
||||||
address,
|
collectibleAddress,
|
||||||
null,
|
null,
|
||||||
tokenId.toString(),
|
tokenId.toString(),
|
||||||
);
|
);
|
||||||
@ -81,7 +105,7 @@ export default function AddCollectible() {
|
|||||||
event: EVENT_NAMES.TOKEN_ADDED,
|
event: EVENT_NAMES.TOKEN_ADDED,
|
||||||
category: 'Wallet',
|
category: 'Wallet',
|
||||||
sensitiveProperties: {
|
sensitiveProperties: {
|
||||||
token_contract_address: address,
|
token_contract_address: collectibleAddress,
|
||||||
token_symbol: tokenDetails?.symbol,
|
token_symbol: tokenDetails?.symbol,
|
||||||
tokenId: tokenId.toString(),
|
tokenId: tokenId.toString(),
|
||||||
asset_type: AssetType.NFT,
|
asset_type: AssetType.NFT,
|
||||||
@ -95,11 +119,13 @@ export default function AddCollectible() {
|
|||||||
|
|
||||||
const validateAndSetAddress = (val) => {
|
const validateAndSetAddress = (val) => {
|
||||||
setDisabled(!isValidHexAddress(val) || !tokenId);
|
setDisabled(!isValidHexAddress(val) || !tokenId);
|
||||||
setAddress(val);
|
setCollectibleAddress(val);
|
||||||
};
|
};
|
||||||
|
|
||||||
const validateAndSetTokenId = (val) => {
|
const validateAndSetTokenId = (val) => {
|
||||||
setDisabled(!isValidHexAddress(address) || !val || isNaN(Number(val)));
|
setDisabled(
|
||||||
|
!isValidHexAddress(collectibleAddress) || !val || isNaN(Number(val)),
|
||||||
|
);
|
||||||
setTokenId(val);
|
setTokenId(val);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -154,7 +180,7 @@ export default function AddCollectible() {
|
|||||||
dataTestId="address"
|
dataTestId="address"
|
||||||
titleText={t('address')}
|
titleText={t('address')}
|
||||||
placeholder="0x..."
|
placeholder="0x..."
|
||||||
value={address}
|
value={collectibleAddress}
|
||||||
onChange={(val) => {
|
onChange={(val) => {
|
||||||
validateAndSetAddress(val);
|
validateAndSetAddress(val);
|
||||||
setCollectibleAddFailed(false);
|
setCollectibleAddFailed(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user