import clsx from 'clsx' import { ReactNode } from 'react' import { useTranslation } from 'react-i18next' import TimeAgo from 'react-timeago' import { UnstakingTask, UnstakingTaskStatus } from '@dao-dao/types' import { formatDate, formatDateTimeTz, humanReadableExpiration, } from '@dao-dao/utils' import { useTranslatedTimeDeltaFormatter } from '../../hooks' import { Tooltip } from '../tooltip' import { TokenAmountDisplay } from './TokenAmountDisplay' import { UnstakingStatus } from './UnstakingStatus' export interface UnstakingLineProps { task: UnstakingTask // If present, replace date with this node. This may be used to add a claim // button to the claim task status. dateReplacement?: ReactNode } const sharedClassNames = 'bg-background-secondary rounded-md' export const UnstakingLine = ({ task: { status, amount, token, expiration }, dateReplacement, }: UnstakingLineProps) => { const { t } = useTranslation() const timeAgoFormatter = useTranslatedTimeDeltaFormatter({ words: true }) const date = 'at_time' in expiration ? new Date(Number(expiration.at_time) / 1e6) : undefined const dateDisplay = date && status === UnstakingTaskStatus.Unstaking ? ( ) : ( humanReadableExpiration(t, formatDate, expiration) ) return ( <> {/* Desktop */} {/* Mobile */}
{dateReplacement || (dateDisplay && (

{dateDisplay}

))}
) }