Skip to content

Commit 05db48d

Browse files
authored
fix: 🐛 fix query parameter (#13141)
1 parent 77d3fdf commit 05db48d

File tree

4 files changed

+27
-8
lines changed

4 files changed

+27
-8
lines changed

packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusSuccess/TransactionStatusSuccess.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ const TransactionStatusSuccess: React.FC<TTransactionStatusSuccess> = ({ transac
3939
isFullWidth
4040
onClick={() => {
4141
// should navigate to transactions page with "Pending transactions" toggle on and filter set to `transactionType`
42-
history.push('/wallets/cashier/transactions?showPending');
42+
history.push('/wallets/cashier/transactions', {
43+
showPending: true,
44+
transactionType: 'withdrawal',
45+
});
4346
}}
4447
size='sm'
4548
variant='outlined'

packages/wallets/src/features/cashier/modules/TransactionStatus/components/TransactionStatusSuccess/__tests__/TransactionStatusSuccess.spec.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@ describe('TransactionStatusSuccess', () => {
224224
expect(screen.getByText('View more')).toBeInTheDocument();
225225

226226
fireEvent.click(screen.getByText('View more'));
227-
expect(pushMock).toHaveBeenCalledWith('/wallets/cashier/transactions?showPending');
227+
expect(pushMock).toHaveBeenCalledWith('/wallets/cashier/transactions', {
228+
showPending: true,
229+
transactionType: 'withdrawal',
230+
});
228231
});
229232
});

packages/wallets/src/features/cashier/modules/Transactions/Transactions.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { useEffect, useMemo, useState } from 'react';
22
import classNames from 'classnames';
3+
import { useHistory } from 'react-router-dom';
34
import { useActiveWalletAccount, useCurrencyConfig } from '@deriv/api';
45
import { ToggleSwitch, WalletDropdown, WalletText } from '../../../../components';
56
import useDevice from '../../../../hooks/useDevice';
@@ -10,6 +11,10 @@ import './Transactions.scss';
1011
type TTransactionsPendingFilter = React.ComponentProps<typeof TransactionsPending>['filter'];
1112
type TTransactionCompletedFilter = React.ComponentProps<typeof TransactionsCompleted>['filter'];
1213
type TFilterValue = TTransactionCompletedFilter | TTransactionsPendingFilter;
14+
type THistoryState = {
15+
showPending?: boolean;
16+
transactionType?: string;
17+
};
1318

1419
const filtersMapper: Record<string, Record<string, TFilterValue>> = {
1520
completed: {
@@ -32,11 +37,11 @@ const Transactions = () => {
3237
const { isLoading } = useCurrencyConfig();
3338
const { isMobile } = useDevice();
3439

35-
const queryParams = new URLSearchParams(location.search);
36-
const showPending = queryParams.get('showPending');
40+
const { location } = useHistory();
41+
const state: THistoryState = location.state;
3742

38-
const [isPendingActive, setIsPendingActive] = useState(showPending === 'true');
39-
const [filterValue, setFilterValue] = useState('all');
43+
const [isPendingActive, setIsPendingActive] = useState(Boolean(state?.showPending));
44+
const [filterValue, setFilterValue] = useState(state?.transactionType ?? 'all');
4045

4146
const filterOptionsList = useMemo(
4247
() =>

packages/wallets/src/routes/Router.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@ type TRoutes = `${typeof prefix}${
1313
| '/cashier'
1414
| '/cashier/deposit'
1515
| '/cashier/reset-balance'
16-
| '/cashier/transaction'
16+
| '/cashier/transactions'
1717
| '/cashier/transfer'
1818
| '/cashier/withdraw'
1919
| '/compare-account'}`;
2020

2121
declare module 'react-router-dom' {
22-
export function useHistory(): { push: (path: TRoutes | string) => void };
22+
export function useHistory(): {
23+
location: {
24+
hash: string;
25+
pathname: string;
26+
search: string;
27+
state: Record<string, unknown>;
28+
};
29+
push: (path: TRoutes | string, state?: Record<string, unknown>) => void;
30+
};
2331

2432
export function useRouteMatch(path: TRoutes): boolean;
2533
}

0 commit comments

Comments
 (0)