mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
added tx details popup to cancelled Swap (#15273)
* added tx details popup to cancelled Swap * removed unnecessary console statements
This commit is contained in:
parent
8a550ce003
commit
2cf7cd40d0
@ -1,10 +1,11 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useState, useCallback } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { useDispatch } from 'react-redux';
|
import { useDispatch } from 'react-redux';
|
||||||
import ListItem from '../../ui/list-item';
|
import ListItem from '../../ui/list-item';
|
||||||
import TransactionStatus from '../transaction-status/transaction-status.component';
|
import TransactionStatus from '../transaction-status/transaction-status.component';
|
||||||
import TransactionIcon from '../transaction-icon';
|
import TransactionIcon from '../transaction-icon';
|
||||||
import { useI18nContext } from '../../../hooks/useI18nContext';
|
import { useI18nContext } from '../../../hooks/useI18nContext';
|
||||||
|
import { useTransactionDisplayData } from '../../../hooks/useTransactionDisplayData';
|
||||||
import { formatDateWithYearContext } from '../../../helpers/utils/util';
|
import { formatDateWithYearContext } from '../../../helpers/utils/util';
|
||||||
import {
|
import {
|
||||||
TRANSACTION_GROUP_CATEGORIES,
|
TRANSACTION_GROUP_CATEGORIES,
|
||||||
@ -15,14 +16,23 @@ import {
|
|||||||
import CancelButton from '../cancel-button';
|
import CancelButton from '../cancel-button';
|
||||||
import { cancelSwapsSmartTransaction } from '../../../ducks/swaps/swaps';
|
import { cancelSwapsSmartTransaction } from '../../../ducks/swaps/swaps';
|
||||||
import SiteOrigin from '../../ui/site-origin';
|
import SiteOrigin from '../../ui/site-origin';
|
||||||
|
import TransactionListItemDetails from '../transaction-list-item-details';
|
||||||
|
|
||||||
export default function SmartTransactionListItem({
|
export default function SmartTransactionListItem({
|
||||||
smartTransaction,
|
smartTransaction,
|
||||||
|
transactionGroup,
|
||||||
isEarliestNonce = false,
|
isEarliestNonce = false,
|
||||||
}) {
|
}) {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
const t = useI18nContext();
|
const t = useI18nContext();
|
||||||
const [cancelSwapLinkClicked, setCancelSwapLinkClicked] = useState(false);
|
const [cancelSwapLinkClicked, setCancelSwapLinkClicked] = useState(false);
|
||||||
|
const [showDetails, setShowDetails] = useState(false);
|
||||||
|
const {
|
||||||
|
primaryCurrency,
|
||||||
|
recipientAddress,
|
||||||
|
isPending,
|
||||||
|
senderAddress,
|
||||||
|
} = useTransactionDisplayData(transactionGroup);
|
||||||
const {
|
const {
|
||||||
sourceTokenSymbol,
|
sourceTokenSymbol,
|
||||||
destinationTokenSymbol,
|
destinationTokenSymbol,
|
||||||
@ -45,11 +55,15 @@ export default function SmartTransactionListItem({
|
|||||||
const showCancelSwapLink =
|
const showCancelSwapLink =
|
||||||
smartTransaction.cancellable && !cancelSwapLinkClicked;
|
smartTransaction.cancellable && !cancelSwapLinkClicked;
|
||||||
const className = 'transaction-list-item transaction-list-item--unconfirmed';
|
const className = 'transaction-list-item transaction-list-item--unconfirmed';
|
||||||
|
const toggleShowDetails = useCallback(() => {
|
||||||
|
setShowDetails((prev) => !prev);
|
||||||
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<ListItem
|
<ListItem
|
||||||
className={className}
|
className={className}
|
||||||
title={title}
|
title={title}
|
||||||
|
onClick={toggleShowDetails}
|
||||||
icon={
|
icon={
|
||||||
<TransactionIcon category={category} status={displayedStatusKey} />
|
<TransactionIcon category={category} status={displayedStatusKey} />
|
||||||
}
|
}
|
||||||
@ -83,6 +97,26 @@ export default function SmartTransactionListItem({
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</ListItem>
|
</ListItem>
|
||||||
|
{showDetails && (
|
||||||
|
<TransactionListItemDetails
|
||||||
|
title={title}
|
||||||
|
onClose={toggleShowDetails}
|
||||||
|
senderAddress={senderAddress}
|
||||||
|
recipientAddress={recipientAddress}
|
||||||
|
primaryCurrency={primaryCurrency}
|
||||||
|
isEarliestNonce={isEarliestNonce}
|
||||||
|
transactionGroup={transactionGroup}
|
||||||
|
transactionStatus={() => (
|
||||||
|
<TransactionStatus
|
||||||
|
isPending={isPending}
|
||||||
|
isEarliestNonce={isEarliestNonce}
|
||||||
|
date={date}
|
||||||
|
status={displayedStatusKey}
|
||||||
|
statusOnly
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -90,4 +124,5 @@ export default function SmartTransactionListItem({
|
|||||||
SmartTransactionListItem.propTypes = {
|
SmartTransactionListItem.propTypes = {
|
||||||
smartTransaction: PropTypes.object.isRequired,
|
smartTransaction: PropTypes.object.isRequired,
|
||||||
isEarliestNonce: PropTypes.bool,
|
isEarliestNonce: PropTypes.bool,
|
||||||
|
transactionGroup: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
@ -129,6 +129,7 @@ export default function TransactionList({
|
|||||||
<SmartTransactionListItem
|
<SmartTransactionListItem
|
||||||
isEarliestNonce={index === 0}
|
isEarliestNonce={index === 0}
|
||||||
smartTransaction={transactionGroup.initialTransaction}
|
smartTransaction={transactionGroup.initialTransaction}
|
||||||
|
transactionGroup={transactionGroup}
|
||||||
key={`${transactionGroup.nonce}:${index}`}
|
key={`${transactionGroup.nonce}:${index}`}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
@ -152,6 +153,7 @@ export default function TransactionList({
|
|||||||
transactionGroup.initialTransaction?.transactionType ===
|
transactionGroup.initialTransaction?.transactionType ===
|
||||||
'smart' ? (
|
'smart' ? (
|
||||||
<SmartTransactionListItem
|
<SmartTransactionListItem
|
||||||
|
transactionGroup={transactionGroup}
|
||||||
smartTransaction={transactionGroup.initialTransaction}
|
smartTransaction={transactionGroup.initialTransaction}
|
||||||
key={`${transactionGroup.nonce}:${index}`}
|
key={`${transactionGroup.nonce}:${index}`}
|
||||||
/>
|
/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user