@@ -5,9 +5,10 @@ import type {
5
5
TransactionStatus ,
6
6
TransactionType ,
7
7
} from "@ironfish/sdk" ;
8
- import { ReactNode , useMemo } from "react" ;
8
+ import { useState , useEffect , ReactNode , useMemo } from "react" ;
9
9
import { MessageDescriptor , useIntl } from "react-intl" ;
10
10
11
+ import { trpcReact } from "@/providers/TRPCProvider" ;
11
12
import { MaybeLink } from "@/ui/ChakraLink/ChakraLink" ;
12
13
import { COLORS } from "@/ui/colors" ;
13
14
import { ShadowCard } from "@/ui/ShadowCard/ShadowCard" ;
@@ -106,7 +107,7 @@ export function NoteRow({
106
107
from,
107
108
to,
108
109
type,
109
- status,
110
+ status : initialStatus ,
110
111
memo,
111
112
transactionHash,
112
113
asTransaction = false ,
@@ -131,6 +132,24 @@ export function NoteRow({
131
132
isBridge ?: boolean ;
132
133
} ) {
133
134
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 ] ) ;
134
153
135
154
const statusDisplay = getNoteStatusDisplay (
136
155
type ,
0 commit comments