Skip to content

Commit 4d50f36

Browse files
committed
storybook fixed
1 parent dbacb12 commit 4d50f36

5 files changed

+64
-45
lines changed

ui/components/app/multichain-transaction-details-modal/multichain-transaction-details-modal.stories.tsx

+39-28
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,57 @@ export default {
66
};
77

88
const mockTransaction = {
9-
type: 'Send BTC',
10-
status: 'Confirmed',
9+
type: 'send',
10+
status: 'confirmed',
1111
timestamp: new Date('Sep 30 2023 12:56').getTime(),
1212
id: 'b93ea2cb4eed0f9e13284ed8860bcfc45de2488bb6a8b0b2a843c4b2fbce40f3',
13-
from: [{
14-
address: "bc1p7atgm33ak04ntsq9366mvym42ecrk4y34ssysc99340a39eq9arq0pu9uj",
15-
asset: {
16-
amount: '1.2',
17-
unit: 'BTC',
18-
}
19-
}],
20-
to: [{
21-
address: "bc1p3t7744qewy262ym5afgeuqlwswtpfe22y7c4lwv0a7972p2k73msee7rr3",
22-
asset: {
23-
amount: '1.2',
24-
unit: 'BTC',
25-
}
26-
}],
27-
fees: [{
28-
type: 'base',
29-
asset: {
30-
amount: '1.0001',
31-
unit: 'BTC',
32-
}
33-
}]
13+
chain: 'bip122:000000000019d6689c085ae165831e93',
14+
account: 'test-account-id',
15+
from: [
16+
{
17+
address: 'bc1p7atgm33ak04ntsq9366mvym42ecrk4y34ssysc99340a39eq9arq0pu9uj',
18+
asset: {
19+
amount: '1.2',
20+
unit: 'BTC',
21+
fungible: true,
22+
},
23+
},
24+
],
25+
to: [
26+
{
27+
address: 'bc1p3t7744qewy262ym5afgeuqlwswtpfe22y7c4lwv0a7972p2k73msee7rr3',
28+
asset: {
29+
amount: '1.2',
30+
unit: 'BTC',
31+
fungible: true,
32+
},
33+
},
34+
],
35+
fees: [
36+
{
37+
type: 'priority',
38+
asset: {
39+
amount: '1.0001',
40+
unit: 'BTC',
41+
fungible: true,
42+
},
43+
},
44+
],
3445
};
3546

3647
export const Default = {
3748
args: {
3849
transaction: mockTransaction,
3950
onClose: () => console.log('Modal closed'),
40-
multichainNetwork: {
51+
userAddress:
52+
'bc1p7atgm33ak04ntsq9366mvym42ecrk4y34ssysc99340a39eq9arq0pu9uj',
53+
networkConfig: {
4154
nickname: 'Bitcoin',
4255
isEvmNetwork: false,
4356
chainId: 'bip122:000000000019d6689c085ae165831e93',
4457
decimals: 8,
45-
network: {
46-
chainId: 'bip122:000000000019d6689c085ae165831e93',
47-
ticker: 'BTC',
48-
},
58+
ticker: 'BTC',
59+
id: 'btc-mainnet',
4960
},
5061
},
5162
};

ui/components/app/multichain-transaction-details-modal/multichain-transaction-details-modal.test.tsx

+5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import { renderWithProvider } from '../../../../test/lib/render-helpers';
1111
import { MOCK_ACCOUNT_SOLANA_MAINNET } from '../../../../test/data/mock-accounts';
1212
import { MetaMetricsContext } from '../../../contexts/metametrics';
1313
import {
14+
MULTICHAIN_PROVIDER_CONFIGS,
1415
MultichainNetworks,
16+
MultichainProviderConfig,
1517
SOLANA_BLOCK_EXPLORER_URL,
1618
} from '../../../../shared/constants/multichain/networks';
1719
import mockState from '../../../../test/data/mock-state.json';
@@ -117,6 +119,7 @@ const mockProps = {
117119
transaction: mockTransaction,
118120
onClose: jest.fn(),
119121
userAddress: MOCK_ACCOUNT_SOLANA_MAINNET.address,
122+
networkConfig: MULTICHAIN_PROVIDER_CONFIGS[MultichainNetworks.BITCOIN],
120123
};
121124

122125
describe('MultichainTransactionDetailsModal', () => {
@@ -136,6 +139,7 @@ describe('MultichainTransactionDetailsModal', () => {
136139
transaction: Transaction;
137140
onClose: jest.Mock;
138141
userAddress: string;
142+
networkConfig: MultichainProviderConfig;
139143
} = mockProps,
140144
) => {
141145
const store = configureStore(mockState.metamask);
@@ -299,6 +303,7 @@ describe('MultichainTransactionDetailsModal', () => {
299303
transaction: mockSwapTransaction,
300304
onClose: jest.fn(),
301305
userAddress,
306+
networkConfig: MULTICHAIN_PROVIDER_CONFIGS[MultichainNetworks.SOLANA],
302307
};
303308

304309
renderComponent(swapProps);

ui/components/app/multichain-transaction-details-modal/multichain-transaction-details-modal.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import {
4242
KEYRING_TRANSACTION_STATUS_KEY,
4343
useMultichainTransactionDisplay,
4444
} from '../../../hooks/useMultichainTransactionDisplay';
45+
import { MultichainProviderConfig } from '../../../../shared/constants/multichain/networks';
4546
import {
4647
formatTimestamp,
4748
getTransactionUrl,
@@ -53,18 +54,20 @@ export type MultichainTransactionDetailsModalProps = {
5354
transaction: Transaction;
5455
onClose: () => void;
5556
userAddress: string;
57+
networkConfig: MultichainProviderConfig;
5658
};
5759

5860
export function MultichainTransactionDetailsModal({
5961
transaction,
6062
onClose,
6163
userAddress,
64+
networkConfig,
6265
}: MultichainTransactionDetailsModalProps) {
6366
const t = useI18nContext();
6467
const trackEvent = useContext(MetaMetricsContext);
6568

6669
const { assetInputs, assetOutputs, isRedeposit, baseFee, priorityFee } =
67-
useMultichainTransactionDisplay(transaction);
70+
useMultichainTransactionDisplay(transaction, networkConfig);
6871

6972
const getStatusColor = (txStatus: string) => {
7073
switch (txStatus.toLowerCase()) {

ui/components/app/transaction-list/transaction-list.component.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,9 @@ export default function TransactionList({
476476
transaction={selectedTransaction}
477477
onClose={() => toggleShowDetails(null)}
478478
userAddress={selectedAccount.address}
479+
networkConfig={
480+
MULTICHAIN_PROVIDER_CONFIGS[selectedTransaction.chain]
481+
}
479482
/>
480483
)}
481484

@@ -653,8 +656,9 @@ export default function TransactionList({
653656
///: BEGIN:ONLY_INCLUDE_IF(multichain)
654657
const MultichainTransactionListItem = ({ transaction, toggleShowDetails }) => {
655658
const t = useI18nContext();
659+
const networkConfig = MULTICHAIN_PROVIDER_CONFIGS[transaction.chain];
656660
const { assetInputs, assetOutputs, isRedeposit } =
657-
useMultichainTransactionDisplay(transaction);
661+
useMultichainTransactionDisplay(transaction, networkConfig);
658662
let title = capitalize(transaction.type);
659663
const statusKey = KEYRING_TRANSACTION_STATUS_KEY[transaction.status];
660664

@@ -675,11 +679,8 @@ const MultichainTransactionListItem = ({ transaction, toggleShowDetails }) => {
675679
className="activity-tx__network-badge"
676680
data-testid="activity-tx-network-badge"
677681
size={AvatarNetworkSize.Xs}
678-
name={MULTICHAIN_PROVIDER_CONFIGS[transaction.chain].id}
679-
src={
680-
MULTICHAIN_PROVIDER_CONFIGS[transaction.chain].rpcPrefs
681-
?.imageUrl
682-
}
682+
name={networkConfig.id}
683+
src={networkConfig.rpcPrefs?.imageUrl}
683684
borderColor={BackgroundColor.backgroundDefault}
684685
/>
685686
}
@@ -724,11 +725,8 @@ const MultichainTransactionListItem = ({ transaction, toggleShowDetails }) => {
724725
className="activity-tx__network-badge"
725726
data-testid="activity-tx-network-badge"
726727
size={AvatarNetworkSize.Xs}
727-
name={MULTICHAIN_PROVIDER_CONFIGS[transaction.chain].id}
728-
src={
729-
MULTICHAIN_PROVIDER_CONFIGS[transaction.chain].rpcPrefs
730-
?.imageUrl
731-
}
728+
name={networkConfig.id}
729+
src={networkConfig.rpcPrefs?.imageUrl}
732730
borderColor={BackgroundColor.backgroundDefault}
733731
/>
734732
}

ui/hooks/useMultichainTransactionDisplay.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { useSelector } from 'react-redux';
88
import { formatWithThreshold } from '../components/app/assets/util/formatWithThreshold';
99
import { getIntlLocale } from '../ducks/locale/locale';
1010
import { TransactionGroupStatus } from '../../shared/constants/transaction';
11-
import { MULTICHAIN_PROVIDER_CONFIGS } from '../../shared/constants/multichain/networks';
11+
import { MultichainProviderConfig } from '../../shared/constants/multichain/networks';
1212

1313
export const KEYRING_TRANSACTION_STATUS_KEY = {
1414
[KeyringTransactionStatus.Failed]: TransactionStatus.failed,
@@ -29,22 +29,24 @@ type Movement = {
2929
address?: string;
3030
};
3131

32-
export function useMultichainTransactionDisplay(transaction: Transaction) {
32+
export function useMultichainTransactionDisplay(
33+
transaction: Transaction,
34+
networkConfig: MultichainProviderConfig,
35+
) {
3336
const locale = useSelector(getIntlLocale);
3437
const isNegative = transaction.type === TransactionType.Send;
35-
const { decimals } = MULTICHAIN_PROVIDER_CONFIGS[transaction.chain];
3638

3739
const assetInputs = aggregateAmount(
3840
transaction.from as Movement[],
3941
isNegative,
4042
locale,
41-
decimals,
43+
networkConfig.decimals,
4244
);
4345
const assetOutputs = aggregateAmount(
4446
transaction.to as Movement[],
4547
isNegative,
4648
locale,
47-
decimals,
49+
networkConfig.decimals,
4850
);
4951
const baseFee = aggregateAmount(
5052
transaction.fees.filter((fee) => fee.type === 'base') as Movement[],

0 commit comments

Comments
 (0)