1
0
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:
Nidhi Kumari 2023-01-19 23:01:13 +05:30 committed by GitHub
parent 0fdff8955c
commit 90d2ca0727
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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);