import React, {useEffect, useState} from "react"; import {Domain, getTrackedDomainList} from "../../../utils/api"; import {Table, Tag, Tooltip} from "antd"; import {t} from "ttag"; import useBreakpoint from "../../../hooks/useBreakpoint"; import {ColumnType} from "antd/es/table"; import {rdapStatusCodeDetailTranslation} from "../../../utils/functions/rdapTranslation"; import {eppStatusCodeToColor} from "../../../utils/functions/eppStatusCodeToColor"; export function TrackedDomainTable() { const sm = useBreakpoint('sm') const [dataTable, setDataTable] = useState([]) const [total, setTotal] = useState() const rdapStatusCodeDetailTranslated = rdapStatusCodeDetailTranslation() const fetchData = (params: { page: number, itemsPerPage: number }) => { getTrackedDomainList(params).then(data => { setTotal(data['hydra:totalItems']) setDataTable(data['hydra:member'].map((d: Domain) => { const expirationDate = d.events.find(e => e.action === 'expiration' && !e.deleted)?.date return { key: d.ldhName, ldhName: d.ldhName, expirationDate: expirationDate ? new Date(expirationDate).toLocaleString() : '-', status: d.status.map(s => {s} ), updatedAt: new Date(d.updatedAt).toLocaleString() } })) }) } useEffect(() => { fetchData({page: 1, itemsPerPage: 30}) }, []) const columns: ColumnType[] = [ { title: t`Domain`, dataIndex: "ldhName" }, { title: t`Expiration date`, dataIndex: 'expirationDate' }, { title: t`Status`, dataIndex: 'status' }, { title: t`Updated at`, dataIndex: 'updatedAt' } ] return { fetchData({page, itemsPerPage}) } }} {...(sm ? {scroll: {y: 'max-content'}} : {scroll: {y: 240}})} /> }