Skip to content

Commit b1f446d

Browse files
Merge pull request bitpay#395 from gabrielbazan7/ref/txpdetails
[REF] listen to wallet changes txp details
2 parents bcc1245 + 171c599 commit b1f446d

File tree

5 files changed

+32
-8
lines changed

5 files changed

+32
-8
lines changed

src/navigation/wallet/WalletStack.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,11 @@ export type WalletStackParamList = {
121121
transaction: any;
122122
onMemoChange: () => void;
123123
};
124-
TransactionProposalDetails: {wallet: WalletModel; transaction: any; key: Key};
124+
TransactionProposalDetails: {
125+
walletId: string;
126+
transactionId: string;
127+
keyId: string;
128+
};
125129
TransactionProposalNotifications: {walletId?: string; keyId?: string};
126130
GlobalSelect: GlobalSelectParamList;
127131
KeyGlobalSelect: KeyGlobalSelectParamList;

src/navigation/wallet/screens/TransactionProposalDetails.tsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ import {BWCErrorMessage} from '../../../constants/BWCError';
6868
import {BottomNotificationConfig} from '../../../components/modal/bottom-notification/BottomNotification';
6969
import {startUpdateWalletStatus} from '../../../store/wallet/effects/status/status';
7070
import {useTranslation} from 'react-i18next';
71+
import {findWalletById} from '../../../store/wallet/utils/wallet';
72+
import {Key, Wallet} from '../../../store/wallet/wallet.models';
7173

7274
const TxsDetailsContainer = styled.SafeAreaView`
7375
flex: 1;
@@ -189,19 +191,22 @@ const TimelineList = ({actions}: {actions: TxActions[]}) => {
189191

190192
const TransactionProposalDetails = () => {
191193
const {t} = useTranslation();
194+
const dispatch = useAppDispatch();
195+
const navigation = useNavigation();
192196
const {
193-
params: {transaction, wallet, key},
197+
params: {transactionId, walletId, keyId},
194198
} = useRoute<RouteProp<WalletStackParamList, 'TransactionProposalDetails'>>();
195199
const defaultAltCurrency = useAppSelector(({APP}) => APP.defaultAltCurrency);
196-
const dispatch = useAppDispatch();
197-
const navigation = useNavigation();
200+
const key = useAppSelector(({WALLET}) => WALLET.keys[keyId]) as Key;
201+
const wallet = findWalletById(key.wallets, walletId) as Wallet;
202+
const transaction = wallet.pendingTxps.find(txp => txp.id === transactionId);
198203
const [txs, setTxs] = useState<any>();
199204
const [isLoading, setIsLoading] = useState(true);
200-
const title = getDetailsTitle(transaction, wallet);
201205
const [showPaymentSentModal, setShowPaymentSentModal] = useState(false);
202206
const [resetSwipeButton, setResetSwipeButton] = useState(false);
203207
const [lastSigner, setLastSigner] = useState(false);
204208

209+
const title = getDetailsTitle(transaction, wallet);
205210
let {
206211
currencyAbbreviation,
207212
credentials: {network},
@@ -218,6 +223,10 @@ const TransactionProposalDetails = () => {
218223

219224
const init = async () => {
220225
try {
226+
if (!transaction) {
227+
navigation.goBack();
228+
return;
229+
}
221230
const _transaction = await dispatch(
222231
buildTransactionDetails({
223232
transaction,
@@ -241,7 +250,7 @@ const TransactionProposalDetails = () => {
241250

242251
useEffect(() => {
243252
init();
244-
}, []);
253+
}, [transaction, wallet]);
245254

246255
const getIcon = () => {
247256
return SUPPORTED_CURRENCIES.includes(txs.coin) ? (

src/navigation/wallet/screens/TransactionProposalNotifications.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,11 @@ const TransactionProposalNotifications = () => {
285285
const key = keys[fullWalletObj.keyId];
286286
navigation.navigate('Wallet', {
287287
screen: 'TransactionProposalDetails',
288-
params: {wallet: fullWalletObj, transaction, key},
288+
params: {
289+
walletId: fullWalletObj.id,
290+
transactionId: transaction.id,
291+
keyId: key.id,
292+
},
289293
});
290294
},
291295
[keys, navigation],

src/navigation/wallet/screens/WalletDetails.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -808,7 +808,11 @@ const WalletDetails: React.FC<WalletDetailsScreenProps> = ({route}) => {
808808
() => (transaction: any) => {
809809
navigation.navigate('Wallet', {
810810
screen: 'TransactionProposalDetails',
811-
params: {wallet: fullWalletObj, transaction, key},
811+
params: {
812+
walletId: fullWalletObj.id,
813+
transactionId: transaction.id,
814+
keyId: key.id,
815+
},
812816
});
813817
},
814818
[],

src/store/wallet/effects/transactions/transactions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,9 @@ export const CanSpeedupTx =
780780
///////////////////////////////////////// Transaction Details ////////////////////////////////////////////////
781781

782782
export const getDetailsTitle = (transaction: any, wallet: Wallet) => {
783+
if (!transaction) {
784+
return;
785+
}
783786
const {action, error} = transaction;
784787
const {coin} = wallet.credentials;
785788

0 commit comments

Comments
 (0)