Skip to content

Commit 6ebd3bf

Browse files
committed
polls pending transactions
1 parent c51f626 commit 6ebd3bf

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

renderer/components/NoteRow/NoteRow.tsx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ import type {
55
TransactionStatus,
66
TransactionType,
77
} from "@ironfish/sdk";
8-
import { ReactNode, useMemo } from "react";
8+
import { useState, useEffect, ReactNode, useMemo } from "react";
99
import { MessageDescriptor, useIntl } from "react-intl";
1010

11+
import { trpcReact } from "@/providers/TRPCProvider";
1112
import { MaybeLink } from "@/ui/ChakraLink/ChakraLink";
1213
import { COLORS } from "@/ui/colors";
1314
import { ShadowCard } from "@/ui/ShadowCard/ShadowCard";
@@ -106,7 +107,7 @@ export function NoteRow({
106107
from,
107108
to,
108109
type,
109-
status,
110+
status: initialStatus,
110111
memo,
111112
transactionHash,
112113
asTransaction = false,
@@ -131,6 +132,24 @@ export function NoteRow({
131132
isBridge?: boolean;
132133
}) {
133134
const { formatMessage } = useIntl();
135+
const [status, setStatus] = useState<TransactionStatus>(initialStatus);
136+
137+
const { data: transactionData } = trpcReact.getTransaction.useQuery(
138+
{ accountName, transactionHash },
139+
{
140+
enabled:
141+
status === "pending" ||
142+
status === "unconfirmed" ||
143+
status === "unknown",
144+
refetchInterval: 5000,
145+
},
146+
);
147+
148+
useEffect(() => {
149+
if (transactionData && transactionData.transaction.status !== status) {
150+
setStatus(transactionData.transaction.status);
151+
}
152+
}, [transactionData, status]);
134153

135154
const statusDisplay = getNoteStatusDisplay(
136155
type,

0 commit comments

Comments
 (0)