Skip to content

Commit 89f79d5

Browse files
committed
update isFetchingLastTransactionStatus as lastTransactionHasCompleted
1 parent f0e580c commit 89f79d5

File tree

4 files changed

+18
-21
lines changed

4 files changed

+18
-21
lines changed

packages/widget/src/hooks/useTxHistory.ts

+1-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { TxsStatus, useBroadcastedTxsStatus } from "@/pages/SwapExecutionPage/us
22
import { useSyncTxStatus } from "@/pages/SwapExecutionPage/useSyncTxStatus";
33
import { removeTransactionHistoryItemAtom, TransactionHistoryItem } from "@/state/history";
44
import { skipChainsAtom } from "@/state/skipClient";
5-
import { skipSubmitSwapExecutionAtom, swapExecutionStateAtom } from "@/state/swapExecutionPage";
65
import { SimpleStatus } from "@/utils/clientType";
76
import { useQuery } from "@tanstack/react-query";
87
import { useAtomValue, useSetAtom } from "jotai";
@@ -17,8 +16,6 @@ export const useTxHistory = ({ txHistoryItem, index }: useTxHistoryProps) => {
1716

1817
const removeTransactionHistoryItem = useSetAtom(removeTransactionHistoryItemAtom);
1918

20-
const { isPending: executeRouteIsPending } = useAtomValue(skipSubmitSwapExecutionAtom);
21-
2219
const txs = txHistoryItem?.transactionDetails?.map((tx) => ({
2320
chainID: tx.chainID,
2421
txHash: tx.txHash,
@@ -32,9 +29,7 @@ export const useTxHistory = ({ txHistoryItem, index }: useTxHistoryProps) => {
3229

3330
const txsRequired = txHistoryItem?.route?.txsRequired;
3431

35-
const shouldFetchStatus =
36-
(!txHistoryItem?.isSettled && txs?.length === txsRequired && chainIdFound) ||
37-
executeRouteIsPending;
32+
const shouldFetchStatus = !txHistoryItem?.isSettled && txs !== undefined && chainIdFound;
3833

3934
let statusData: TransactionHistoryItem | TxsStatus | undefined = txHistoryItem;
4035

packages/widget/src/pages/SwapExecutionPage/useSyncTxStatus.tsx

+1-3
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,14 @@ export const useSyncTxStatus = ({
7373
]);
7474

7575
useEffect(() => {
76-
setOverallStatus(computedSwapStatus);
77-
7876
if (computedSwapStatus) {
7977
const index = historyIndex ?? transactionHistoryIndex;
8078
setTransactionHistoryItem({
8179
...txHistory[index],
8280
...statusData,
8381
status: computedSwapStatus,
8482
});
85-
console.log(computedSwapStatus);
83+
setOverallStatus(computedSwapStatus);
8684
}
8785
}, [
8886
clientOperations,

packages/widget/src/pages/SwapPage/SwapPageHeader.tsx

+6-8
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,23 @@ import { sourceAssetAtom } from "@/state/swapPage";
55
import { PageHeader } from "../../components/PageHeader";
66
import { currentPageAtom, Routes } from "@/state/router";
77
import { ConnectedWalletContent } from "./ConnectedWalletContent";
8-
import { lastTransactionHasCompletedAtom, transactionHistoryAtom } from "@/state/history";
8+
import { isFetchingLastTransactionStatusAtom, transactionHistoryAtom } from "@/state/history";
99
import { track } from "@amplitude/analytics-browser";
1010
import { SpinnerIcon } from "@/icons/SpinnerIcon";
1111
import { useGetAccount } from "@/hooks/useGetAccount";
1212
import { useTxHistory } from "@/hooks/useTxHistory";
13-
import { skipSubmitSwapExecutionAtom } from "@/state/swapExecutionPage";
1413

1514
export const SwapPageHeader = memo(() => {
1615
const setCurrentPage = useSetAtom(currentPageAtom);
1716
const sourceAsset = useAtomValue(sourceAssetAtom);
18-
const { isPending } = useAtomValue(skipSubmitSwapExecutionAtom);
1917

20-
const lastTransactionHasCompleted = useAtomValue(lastTransactionHasCompletedAtom);
18+
const isFetchingLastTransactionStatus = useAtomValue(isFetchingLastTransactionStatusAtom);
2119

2220
const getAccount = useGetAccount();
2321
const sourceAccount = getAccount(sourceAsset?.chainID);
2422

2523
const historyPageIcon = useMemo(() => {
26-
if (!lastTransactionHasCompleted || isPending) {
24+
if (isFetchingLastTransactionStatus) {
2725
return (
2826
<div
2927
style={{
@@ -45,10 +43,10 @@ export const SwapPageHeader = memo(() => {
4543
}
4644

4745
return ICONS.history;
48-
}, [isPending, lastTransactionHasCompleted]);
46+
}, [isFetchingLastTransactionStatus]);
4947

5048
const historyPageButton = useMemo(() => {
51-
if (lastTransactionHasCompleted === undefined) return;
49+
if (isFetchingLastTransactionStatus === undefined) return;
5250

5351
return {
5452
label: "History",
@@ -58,7 +56,7 @@ export const SwapPageHeader = memo(() => {
5856
setCurrentPage(Routes.TransactionHistoryPage);
5957
},
6058
};
61-
}, [lastTransactionHasCompleted, historyPageIcon, setCurrentPage]);
59+
}, [isFetchingLastTransactionStatus, historyPageIcon, setCurrentPage]);
6260

6361
return (
6462
<>

packages/widget/src/state/history.ts

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { RouteResponse } from "@skip-go/client";
22
import { atomFamily, atomWithStorage } from "jotai/utils";
3-
import { TransactionDetails } from "./swapExecutionPage";
3+
import { skipSubmitSwapExecutionAtom, TransactionDetails } from "./swapExecutionPage";
44
import { SimpleStatus } from "@/utils/clientType";
55
import { atom } from "jotai";
66
import { TxsStatus } from "@/pages/SwapExecutionPage/useBroadcastedTxs";
@@ -47,8 +47,14 @@ export const removeTransactionHistoryItemAtom = atom(null, (get, set, index: num
4747
transactionHistoryItemAtom.remove(index);
4848
});
4949

50-
export const lastTransactionHasCompletedAtom = atom((get) => {
51-
const txHistoryItem = get(transactionHistoryAtom).at(-1);
50+
export const isFetchingLastTransactionStatusAtom = atom((get) => {
51+
const lastTxHistoryItem = get(transactionHistoryAtom).at(-1);
5252

53-
return txHistoryItem?.isSettled;
53+
const { isPending: executeRouteIsPending } = get(skipSubmitSwapExecutionAtom);
54+
55+
const isFetchingLastTxStatus =
56+
(!lastTxHistoryItem?.isSettled && lastTxHistoryItem?.transactionDetails !== undefined) ||
57+
executeRouteIsPending;
58+
59+
return isFetchingLastTxStatus;
5460
});

0 commit comments

Comments
 (0)