import type { RouteExtended } from '@lifi/sdk'
import DeleteOutline from '@mui/icons-material/DeleteOutlined'
import { Tooltip, Typography } from '@mui/material'
import type { JSX, MouseEvent } from 'react'
import { useTranslation } from 'react-i18next'
import { useActionMessage } from '../../hooks/useActionMessage.js'
import { RouteExecutionStatus } from '../../stores/routes/types.js'
import { getExpiryTimestamp } from '../../utils/timer.js'
import { ActionRow } from '../ActionRow/ActionRow.js'
import { Card } from '../Card/Card.js'
import { IconCircle } from '../IconCircle/IconCircle.js'
import { RouteTokens } from '../RouteCard/RouteTokens.js'
import { ExecutionTimerText } from '../Timer/ExecutionTimerText.js'
import { CircularProgressPending } from '../Timer/StepStatusTimer.style.js'
import { DeleteButton, PendingCircle } from './ActiveTransactionCard.style.js'
interface ActiveTransactionCardProps {
route: RouteExtended
status?: RouteExecutionStatus
onClick: () => void
onDelete: (e: MouseEvent) => void
}
export const ActiveTransactionCard = ({
route,
status,
onClick,
onDelete,
}: ActiveTransactionCardProps): JSX.Element => {
const { t } = useTranslation()
const lastActiveStep = route.steps.findLast((step) => step.execution)
const lastActiveAction = lastActiveStep?.execution?.actions?.at(-1)
const { title } = useActionMessage(lastActiveStep, lastActiveAction)
const isFailed = status === RouteExecutionStatus.Failed
const statusIcon = (() => {
if (isFailed) {
return
}
if (
['ACTION_REQUIRED', 'MESSAGE_REQUIRED', 'RESET_REQUIRED'].includes(
lastActiveAction?.status ?? ''
)
) {
return
}
return (
)
})()
return (
) : lastActiveStep?.execution?.signedAt ? (
) : undefined
}
/>
)
}