Skip to content

Commit 3524801

Browse files
authored
transform pending status older that 2h into failed (#188)
1 parent 6d77bf5 commit 3524801

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/components/ExplorerTable/ExplorerTable.tsx

+16-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@ import React from "react"
22
import { Table, TableHead, TableCell, TableBody, TableRow, CircularProgress } from "@mui/material"
33
import clsx from "clsx"
44
import { Link } from "react-router-dom"
5-
import { EnvironmentMetadata, EvmBridgeConfig, ExplorerContextState, ResourceTypes, SharedConfigDomain, Transfer } from "../../types"
5+
import {
6+
EnvironmentMetadata,
7+
EvmBridgeConfig,
8+
ExplorerContextState,
9+
ResourceTypes,
10+
SharedConfigDomain,
11+
Transfer,
12+
TransferStatus,
13+
} from "../../types"
614
import { renderNetworkIcon, renderStatusIcon } from "../../utils/renderUtils"
715
import {
816
filterTransfers,
@@ -16,6 +24,7 @@ import {
1624
shortenAddress,
1725
} from "../../utils/transferHelpers"
1826
import { useStyles } from "./styles"
27+
import { add, isAfter } from "date-fns"
1928

2029
type ExplorerTable = {
2130
active: boolean
@@ -32,7 +41,12 @@ const ExplorerTable: React.FC<ExplorerTable> = ({ state, domainMetadata }: Explo
3241

3342
const renderTransferList = (transferData: Transfer[]): JSX.Element[] => {
3443
return transferData.map((transfer: Transfer) => {
35-
const { deposit, status, amount, resource, fromDomainId, toDomainId, id, resourceID, fee, usdValue } = transfer
44+
const { deposit, amount, resource, fromDomainId, toDomainId, id, resourceID, fee, usdValue, timestamp } = transfer
45+
let { status } = transfer
46+
47+
if (deposit && deposit.timestamp && status === "pending" && isAfter(Date.now(), add(new Date(deposit.timestamp), {hours: 2}))) {
48+
status = "failed" as TransferStatus
49+
}
3650

3751
const { type } = resource
3852

src/pages/DetailView/DetailView.tsx

+10-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import localizedFormat from "dayjs/plugin/localizedFormat"
88
import KeyboardDoubleArrowRightIcon from "@mui/icons-material/KeyboardDoubleArrowRight"
99
import clsx from "clsx"
1010
import { useExplorer } from "../../context"
11-
import { EnvironmentMetadata, ResourceTypes, Transfer } from "../../types"
11+
import { EnvironmentMetadata, ResourceTypes, Transfer, TransferStatus } from "../../types"
1212
import { renderNetworkIcon, renderStatusIcon } from "../../utils/renderUtils"
1313
import {
1414
accountLinks,
@@ -24,6 +24,7 @@ import useClipboard from "./hooks/useClipboard"
2424
import useFetchTransfer from "./hooks/useFetchTransfer"
2525
import { DetailViewState, reducer } from "./reducer"
2626
import useUpdateInterval from "./hooks/useUpdateInterval"
27+
import { add, isAfter } from "date-fns"
2728

2829
dayjs.extend(localizedFormat)
2930

@@ -69,10 +70,15 @@ export default function DetailView() {
6970

7071
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
7172
const renderTransferDetails = (transfer: Transfer | null) => {
72-
const { fromDomainId, toDomainId, resource, usdValue } = transfer as Transfer
73+
const { fromDomainId, toDomainId, resource, usdValue, deposit } = transfer as Transfer
7374
const fromDomainInfo = (domainMetadata as EnvironmentMetadata)[Number(fromDomainId)]
7475
const toDomainInfo = (domainMetadata as EnvironmentMetadata)[Number(toDomainId)]
7576

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+
7682
const { id, type } = resource
7783

7884
const fromDomainName = fromDomainInfo.renderName
@@ -98,8 +104,8 @@ export default function DetailView() {
98104
<span className={classes.detailsInnerContentTitle}>Status:</span>
99105
<span className={classes.detailsInnerContent}>
100106
<span className={classes.statusPill}>
101-
{renderStatusIcon(transfer?.status!, classes)}
102-
{displayStatus(transfer?.status!)}
107+
{renderStatusIcon(status!, classes)}
108+
{displayStatus(status!)}
103109
</span>
104110
</span>
105111
</div>

0 commit comments

Comments
 (0)