import {Card, Divider, Space, Table, Tag, Tooltip} from "antd"; import {DisconnectOutlined, LinkOutlined} from "@ant-design/icons"; import {t} from "ttag"; import {ViewDiagramWatchlistButton} from "./diagram/ViewDiagramWatchlistButton"; import {UpdateWatchlistButton} from "./UpdateWatchlistButton"; import {DeleteWatchlistButton} from "./DeleteWatchlistButton"; import punycode from "punycode/punycode"; import React from "react"; import {Watchlist} from "../../../pages/tracking/WatchlistPage"; import {Connector} from "../../../utils/api/connectors"; import useBreakpoint from "../../../hooks/useBreakpoint"; import {CalendarWatchlistButton} from "./CalendarWatchlistButton"; import {rdapEventDetailTranslation, rdapEventNameTranslation} from "../../../utils/functions/rdapTranslation"; import {actionToColor} from "../../../utils/functions/actionToColor"; export function WatchlistCard({watchlist, onUpdateWatchlist, connectors, onDelete}: { watchlist: Watchlist, onUpdateWatchlist: (values: { domains: string[], triggers: string[], token: string }) => Promise, connectors: (Connector & { id: string })[], onDelete: () => void }) { const sm = useBreakpoint('sm') const rdapEventNameTranslated = rdapEventNameTranslation() const rdapEventDetailTranslated = rdapEventDetailTranslation() const columns = [ { title: t`Domain names`, dataIndex: 'domains' }, { title: t`Tracked events`, dataIndex: 'events' } ] return <> { watchlist.connector ? } color="lime-inverse"/> : } color="default"/> } {t`Watchlist` + (watchlist.name ? ` (${watchlist.name})` : '')} } size='small' style={{width: '100%'}} extra={ } > {punycode.toUnicode(d.ldhName)}), events: watchlist.triggers?.filter(t => t.action === 'email') .map(t => {rdapEventNameTranslated[t.event as keyof typeof rdapEventNameTranslated]} ) }]} {...(sm ? {scroll: {y: 'max-content'}} : {scroll: {y: 240}})} /> }