import { ClockCircleOutlined, DeleteOutlined, ReloadOutlined, ShareAltOutlined, SignatureOutlined, SyncOutlined } from "@ant-design/icons"; import {Timeline} from "antd"; import React from "react"; import {Domain} from "../../utils/api"; import {t} from "ttag"; import useBreakpoint from "../../hooks/useBreakpoint"; export function EventTimeline({domain}: { domain: Domain }) { const sm = useBreakpoint('sm') const domainEvent = { registration: t`Registration`, reregistration: t`Reregistration`, 'last changed': t`Last changed`, expiration: t`Expiration`, deletion: t`Deletion`, reinstantiation: t`Reinstantiation`, transfer: t`Transfer`, locked: t`Locked`, unlocked: t`Unlocked`, 'registrar expiration': t`Registrar expiration`, 'enum validation expiration': t`ENUM validation expiration` } const locale = navigator.language.split('-')[0] return new Date(e2.date).getTime() - new Date(e1.date).getTime()) .map(({action, date}) => { let color, dot if (action === 'registration') { color = 'green' dot = } else if (action === 'expiration') { color = 'red' dot = } else if (action === 'transfer') { color = 'orange' dot = } else if (action === 'last changed') { color = 'blue' dot = } else if (action === 'deletion') { color = 'red' dot = } else if (action === 'reregistration') { color = 'green' dot = } const eventName = Object.keys(domainEvent).includes(action) ? domainEvent[action as keyof typeof domainEvent] : action const dateStr = new Date(date).toLocaleString(locale) const text = sm ? { children: <>{eventName} {dateStr} } : { label: dateStr, children: eventName, } return { color, dot, pending: new Date(date).getTime() > new Date().getTime(), ...text } } ) } /> }