@@ -8,7 +8,7 @@ import localizedFormat from "dayjs/plugin/localizedFormat"
8
8
import KeyboardDoubleArrowRightIcon from "@mui/icons-material/KeyboardDoubleArrowRight"
9
9
import clsx from "clsx"
10
10
import { useExplorer } from "../../context"
11
- import { EnvironmentMetadata , ResourceTypes , Transfer } from "../../types"
11
+ import { EnvironmentMetadata , ResourceTypes , Transfer , TransferStatus } from "../../types"
12
12
import { renderNetworkIcon , renderStatusIcon } from "../../utils/renderUtils"
13
13
import {
14
14
accountLinks ,
@@ -24,6 +24,7 @@ import useClipboard from "./hooks/useClipboard"
24
24
import useFetchTransfer from "./hooks/useFetchTransfer"
25
25
import { DetailViewState , reducer } from "./reducer"
26
26
import useUpdateInterval from "./hooks/useUpdateInterval"
27
+ import { add , isAfter } from "date-fns"
27
28
28
29
dayjs . extend ( localizedFormat )
29
30
@@ -69,10 +70,15 @@ export default function DetailView() {
69
70
70
71
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
71
72
const renderTransferDetails = ( transfer : Transfer | null ) => {
72
- const { fromDomainId, toDomainId, resource, usdValue } = transfer as Transfer
73
+ const { fromDomainId, toDomainId, resource, usdValue, deposit } = transfer as Transfer
73
74
const fromDomainInfo = ( domainMetadata as EnvironmentMetadata ) [ Number ( fromDomainId ) ]
74
75
const toDomainInfo = ( domainMetadata as EnvironmentMetadata ) [ Number ( toDomainId ) ]
75
76
77
+ let { status } = transfer as Transfer
78
+ if ( deposit && deposit . timestamp && status === "pending" && isAfter ( Date . now ( ) , add ( new Date ( deposit . timestamp ) , { hours : 2 } ) ) ) {
79
+ status = "failed" as TransferStatus
80
+ }
81
+
76
82
const { id, type } = resource
77
83
78
84
const fromDomainName = fromDomainInfo . renderName
@@ -98,8 +104,8 @@ export default function DetailView() {
98
104
< span className = { classes . detailsInnerContentTitle } > Status:</ span >
99
105
< span className = { classes . detailsInnerContent } >
100
106
< span className = { classes . statusPill } >
101
- { renderStatusIcon ( transfer ?. status ! , classes ) }
102
- { displayStatus ( transfer ?. status ! ) }
107
+ { renderStatusIcon ( status ! , classes ) }
108
+ { displayStatus ( status ! ) }
103
109
</ span >
104
110
</ span >
105
111
</ div >
0 commit comments