import {Card, Divider, message, Popconfirm, Space, theme, Typography} from 'antd' import {jt, t} from 'ttag' import {DeleteFilled} from '@ant-design/icons' import React from 'react' import type {Connector} from '../../../utils/api/connectors' import {deleteConnector} from '../../../utils/api/connectors' const {useToken} = theme export type ConnectorElement = Connector & { id: string, createdAt: string, watchlistCount: number } export function ConnectorsList({connectors, onDelete}: { connectors: ConnectorElement[], onDelete: () => void }) { const {token} = useToken() const [messageApi, contextHolder] = message.useMessage() const onConnectorDelete = async (connector: ConnectorElement) => await deleteConnector(connector.id) .then(onDelete) .catch(() => messageApi.error(t`An error occurred while deleting the Connector. Make sure it is not used in any Watchlist`)) return ( <> {connectors.map(connector => { const createdAt = {new Date(connector.createdAt).toLocaleString()} const {watchlistCount} = connector return <> {contextHolder} {t`Connector ${connector.provider}`}{connector.id} } size='small' style={{width: '100%'}} extra={ await onConnectorDelete(connector)} okText={t`Yes`} cancelText={t`No`} > } > {jt`Creation date: ${createdAt}`} {t`Used in: ${watchlistCount} Watchlist`} } )} ) }