import {Card, Divider, Space, Table, Tag, Typography} from "antd"; import {t} from "ttag"; import {CalendarFilled, DisconnectOutlined, LinkOutlined} from "@ant-design/icons"; import React from "react"; import useBreakpoint from "../../../hooks/useBreakpoint"; import {actionToColor, domainEvent} from "../../search/EventTimeline"; import {Watchlist} from "../../../pages/tracking/WatchlistPage"; import punycode from "punycode/punycode"; import {Connector} from "../../../utils/api/connectors"; import {UpdateWatchlistButton} from "./UpdateWatchlistButton"; import {DeleteWatchlistButton} from "./DeleteWatchlistButton"; import {ViewDiagramWatchlistButton} from "../diagram/ViewDiagramWatchlistButton"; export function WatchlistsList({watchlists, onDelete, onUpdateWatchlist, connectors}: { watchlists: Watchlist[], onDelete: () => void, onUpdateWatchlist: (values: { domains: string[], emailTriggers: string[], token: string }) => Promise, connectors: (Connector & { id: string })[] }) { const sm = useBreakpoint('sm') const domainEventTranslated = domainEvent() const columns = [ { title: t`Domain names`, dataIndex: 'domains' }, { title: t`Tracked events`, dataIndex: 'events' } ] return <> {watchlists.map(watchlist => <> { watchlist.connector ? } color="lime-inverse" title={watchlist.connector.id}/> : } color="default" title={t`This Watchlist is not linked to a Connector.`}/> } {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 => {domainEventTranslated[t.event as keyof typeof domainEventTranslated]} ) }]} {...(sm ? {scroll: {y: 'max-content'}} : {scroll: {y: 240}})} /> )} }