feat: add domain to watchlist FAB

This commit is contained in:
vinceh121
2025-11-01 22:59:49 +01:00
parent c3832f06c3
commit 841e8dcba6
4 changed files with 162 additions and 36 deletions

View File

@@ -6,32 +6,38 @@ import React from 'react'
import type {Event} from "../api"
import {t} from "ttag"
export function DomainToTag({domain}: { domain: { ldhName: string, deleted: boolean, status: string[], events?: Event[] } }) {
return (
<Link to={'/search/domain/' + domain.ldhName}>
<Badge dot={domain.events?.find(e =>
e.action === 'last changed' &&
!e.deleted &&
((new Date().getTime() - new Date(e.date).getTime()) < 7*24*60*60*1e3)
) !== undefined} color='blue' title={t`The domain name was updated less than a week ago.`}>
<Tag
color={
domain.deleted
? 'magenta'
: domain.status.includes('redemption period')
? 'yellow'
: domain.status.includes('pending delete') ? 'volcano' : 'default'
}
icon={
domain.deleted
? <DeleteOutlined/>
: domain.status.includes('redemption period')
? <ExclamationCircleOutlined/>
: domain.status.includes('pending delete') ? <DeleteOutlined/> : null
}
>{punycode.toUnicode(domain.ldhName)}
</Tag>
</Badge>
</Link>
)
export function DomainToTag({domain, link}: { domain: { ldhName: string, deleted: boolean, status: string[], events?: Event[] }, link?: boolean }) {
const tag = <Badge dot={domain.events?.find(e =>
e.action === 'last changed' &&
!e.deleted &&
((new Date().getTime() - new Date(e.date).getTime()) < 7*24*60*60*1e3)
) !== undefined} color='blue' title={t`The domain name was updated less than a week ago.`}>
<Tag
color={
domain.deleted
? 'magenta'
: domain.status.includes('redemption period')
? 'yellow'
: domain.status.includes('pending delete') ? 'volcano' : 'default'
}
icon={
domain.deleted
? <DeleteOutlined/>
: domain.status.includes('redemption period')
? <ExclamationCircleOutlined/>
: domain.status.includes('pending delete') ? <DeleteOutlined/> : null
}
>{punycode.toUnicode(domain.ldhName)}
</Tag>
</Badge>
if (link ?? true) {
return (
<Link to={'/search/domain/' + domain.ldhName}>
{tag}
</Link>
)
} else {
return tag
}
}