import {Badge, Card, Col, Divider, Flex, Row, Space, Tag, Tooltip, Typography} from "antd"; import {t} from "ttag"; import {EventTimeline} from "./EventTimeline"; import {EntitiesList} from "./EntitiesList"; import {DomainDiagram} from "./DomainDiagram"; import React from "react"; import {Domain} from "../../utils/api"; import {rdapStatusCodeDetailTranslation} from "../../utils/functions/rdapTranslation"; import {regionNames} from "../../i18n"; import {getCountryCode} from "../../utils/functions/getCountryCode"; import {eppStatusCodeToColor} from "../../utils/functions/eppStatusCodeToColor"; import {DomainLifecycleSteps} from "./DomainLifecycleSteps"; import {BankOutlined, KeyOutlined, SafetyCertificateOutlined} from '@ant-design/icons' export function DomainResult({domain}: { domain: Domain }) { const rdapStatusCodeDetailTranslated = rdapStatusCodeDetailTranslation() const {tld, events} = domain const domainEvents = events.sort((e1, e2) => new Date(e2.date).getTime() - new Date(e1.date).getTime()) const clientStatus = domain.status.filter(s => s.startsWith('client')) const serverStatus = domain.status.filter(s => !clientStatus.includes(s)) const isLocked = (type: 'client' | 'server'): boolean => (domain.status.includes(type + ' update prohibited') && domain.status.includes(type + ' delete prohibited')) || domain.status.includes(type + ' transfer prohibited') const statusToTag = (s: string) => {s} return {`${domain.tld.tld.toUpperCase()} (${tld.type})`} } color={ tld.type === 'ccTLD' ? 'purple' : (tld.type === 'gTLD' && tld.specification13) ? "volcano" : tld.type === 'gTLD' ? "green" : "cyan" }> {domain.ldhName}{domain.handle && {domain.handle}} } size="small"> { domain.events.length > 0 && } }>{t`Registry Lock`} }>{t`Registrar Lock`} }>{t`DNSSEC`} {domain.status.length > 0 && <> {t`EPP Status Codes`} {serverStatus.map(statusToTag)} {clientStatus.map(statusToTag)} } { domain.events.length > 0 && <> {t`Timeline`} } { domain.entities.length > 0 && <> {t`Entities`} } }