Skip to content

Commit d9ca357

Browse files
fix(frontend): real-time transaction counter updates (#778)
1 parent 60414c5 commit d9ca357

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

js/frontend/src/features/history/hooks/use-transactions-count-subscription.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { useEffect } from 'react';
66
import { useNetworkType } from '@/context/network-type';
77
import { logger } from '@/utils';
88

9+
import { useTransactionsCountQueryKey } from './use-transactions-count';
10+
911
const TRANSFERS_COUNT_SUBSCRIPTION = `
1012
subscription TransfersCountSubscription {
1113
transferCount
@@ -16,17 +18,16 @@ function useTransactionsCountSubscription() {
1618
const alert = useAlert();
1719
const queryClient = useQueryClient();
1820
const { NETWORK_PRESET } = useNetworkType();
21+
const queryKey = useTransactionsCountQueryKey();
1922

2023
useEffect(() => {
21-
const wsClient = createClient({ url: NETWORK_PRESET.INDEXER_ADDRESS });
24+
const wsClient = createClient({ url: NETWORK_PRESET.INDEXER_ADDRESS.replace('http', 'ws') });
2225

2326
const unsubscribe = wsClient.subscribe(
2427
{ query: TRANSFERS_COUNT_SUBSCRIPTION },
2528
{
2629
next: (result) => {
27-
queryClient.setQueryData(['transactionsCount', undefined], {
28-
allTransfers: { totalCount: result.data?.transferCount },
29-
});
30+
queryClient.setQueryData(queryKey, { allTransfers: { totalCount: result.data?.transferCount } });
3031
},
3132
error: (error: Error) => {
3233
logger.error('Transaction count subscription', error);
@@ -41,7 +42,7 @@ function useTransactionsCountSubscription() {
4142
void wsClient.dispose();
4243
};
4344
// eslint-disable-next-line react-hooks/exhaustive-deps
44-
}, [NETWORK_PRESET.INDEXER_ADDRESS]);
45+
}, [NETWORK_PRESET.INDEXER_ADDRESS, queryKey]);
4546
}
4647

4748
export { useTransactionsCountSubscription };

js/frontend/src/features/history/hooks/use-transactions-count.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { useQuery } from '@tanstack/react-query';
22
import { request } from 'graphql-request';
3+
import { useMemo } from 'react';
34

45
import { useNetworkType } from '@/context/network-type';
56

@@ -20,10 +21,13 @@ type Params = {
2021
enabled?: boolean;
2122
};
2223

23-
function useTransactionsCountQueryKey(filter: TransferFilter | undefined) {
24+
function useTransactionsCountQueryKey(filter?: TransferFilter) {
2425
const { NETWORK_PRESET } = useNetworkType();
2526

26-
return ['transactionsCount', NETWORK_PRESET.INDEXER_ADDRESS, filter];
27+
return useMemo(
28+
() => ['transactionsCount', NETWORK_PRESET.INDEXER_ADDRESS, filter],
29+
[NETWORK_PRESET.INDEXER_ADDRESS, filter],
30+
);
2731
}
2832

2933
function useTransactionsCount({ filter, refetchInterval, enabled }: Params = {}) {

0 commit comments

Comments
 (0)