From 3244631f04f14df66aed37a69b37f3b0058961c9 Mon Sep 17 00:00:00 2001 From: Josh Leonard <30185185+josheleonard@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:36:29 +0000 Subject: [PATCH 1/6] chore: consolidate tx confirmation panels --- .../common/hooks/use-pending-transaction.ts | 8 +- .../confirm-bitcoin-transaction-panel.tsx | 193 -------------- ...nfirm-solana-transaction-panel.stories.tsx | 32 --- .../confirm-solana-transaction-panel.tsx | 235 ------------------ .../confirm-transaction-panel.tsx | 124 ++++++--- .../confirm_zcash_transaction_panel.tsx | 193 -------------- .../brave_wallet_ui/panel/container.tsx | 26 +- 7 files changed, 90 insertions(+), 721 deletions(-) delete mode 100644 components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm-bitcoin-transaction-panel.tsx delete mode 100644 components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm-solana-transaction-panel.stories.tsx delete mode 100644 components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm-solana-transaction-panel.tsx delete mode 100644 components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm_zcash_transaction_panel.tsx diff --git a/components/brave_wallet_ui/common/hooks/use-pending-transaction.ts b/components/brave_wallet_ui/common/hooks/use-pending-transaction.ts index 4694aa29877d..02c7919e9910 100644 --- a/components/brave_wallet_ui/common/hooks/use-pending-transaction.ts +++ b/components/brave_wallet_ui/common/hooks/use-pending-transaction.ts @@ -27,7 +27,9 @@ import { isSolanaTransaction, parseTransactionWithPrices, findTransactionToken, - isEthereumTransaction + isEthereumTransaction, + isZCashTransaction, + isBitcoinTransaction } from '../../utils/tx-utils' import { makeNetworkAsset } from '../../options/asset-options' @@ -654,6 +656,8 @@ export const usePendingTransactions = () => { onConfirm, onReject, insufficientFundsError, - insufficientFundsForGasError + insufficientFundsForGasError, + isZCashTransaction: isZCashTransaction(transactionInfo), + isBitcoinTransaction: isBitcoinTransaction(transactionInfo) } } diff --git a/components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm-bitcoin-transaction-panel.tsx b/components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm-bitcoin-transaction-panel.tsx deleted file mode 100644 index 1b95400e5aa3..000000000000 --- a/components/brave_wallet_ui/components/extension/confirm-transaction-panel/confirm-bitcoin-transaction-panel.tsx +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright (c) 2023 The Brave Authors. All rights reserved. -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this file, -// You can obtain one at https://mozilla.org/MPL/2.0/. - -import * as React from 'react' - -// Utils -import Amount from '../../../utils/amount' -import { WalletSelectors } from '../../../common/selectors' - -// Hooks -import { usePendingTransactions } from '../../../common/hooks/use-pending-transaction' -import { - useUnsafeWalletSelector // -} from '../../../common/hooks/use-safe-selector' -import { - useGetDefaultFiatCurrencyQuery // -} from '../../../common/slices/api.slice' - -// Components -import Tooltip from '../../shared/tooltip/index' -import CreateSiteOrigin from '../../shared/create-site-origin/index' -import PanelTab from '../panel-tab' -import { BitcoinTransactionInfo } from './bitcoin-transaction-info' -import { BitcoinTransactionDetailBox } from '../transaction-box/bitcoin-transaction-detail-box' -import { TransactionQueueSteps } from './common/queue' -import { Footer } from './common/footer' - -// Styles -import { Skeleton } from '../../shared/loading-skeleton/styles' -import { TabRow, URLText } from '../shared-panel-styles' -import { - StyledWrapper, - FromCircle, - ToCircle, - AccountNameText, - TopRow, - NetworkText, - TransactionAmountBig, - TransactionFiatAmountBig, - MessageBox, - TransactionTypeText, - AccountCircleWrapper, - ArrowIcon, - FromToRow -} from './style' - -type confirmPanelTabs = 'transaction' | 'details' - -export const ConfirmBitcoinTransactionPanel = () => { - // redux - const activeOrigin = useUnsafeWalletSelector(WalletSelectors.activeOrigin) - - // queries - const { data: defaultFiatCurrency = 'usd' } = useGetDefaultFiatCurrencyQuery() - - // custom hooks - const { - fromAccount, - fromOrb, - toOrb, - transactionDetails, - transactionsNetwork, - transactionTitle, - selectedPendingTransaction, - onConfirm, - onReject, - queueNextTransaction, - transactionQueueNumber, - transactionsQueueLength - } = usePendingTransactions() - const originInfo = selectedPendingTransaction?.originInfo ?? activeOrigin - - // state - const [selectedTab, setSelectedTab] = - React.useState('transaction') - - // methods - const onSelectTab = React.useCallback( - (tab: confirmPanelTabs) => () => setSelectedTab(tab), - [] - ) - - // render - if ( - !transactionDetails || - !selectedPendingTransaction || - !transactionsNetwork || - !fromAccount - ) { - return ( - - - - ) - } - - return ( - - - {transactionsNetwork.chainName} - - - - - - - - - - - - - {fromAccount.name} - - - {transactionDetails.recipient && - transactionDetails.recipient !== fromAccount.address && ( - <> - - - - {transactionDetails.recipientLabel} - - - - )} - - - {transactionTitle} - - {new Amount(transactionDetails.valueExact).formatAsAsset( - undefined, - transactionDetails.symbol - )} - - - {new Amount(transactionDetails.fiatValue).formatAsFiat( - defaultFiatCurrency - )} - - - - - - - - - {selectedTab === 'transaction' ? ( - - ) : ( - - )} - -