import React from 'react'; import { useTranslation } from 'react-i18next'; import { ArrowDown, ArrowDownCircle, ArrowUp, X } from '~/components/shared/FeatherIcons'; import prettyBytes from '~/misc/pretty-bytes'; import { formatElapsed, getDateFnsLocale } from '~/modules/connections/utils'; import { FormattedConn } from '~/store/connections'; import s from './ConnectionCard.module.scss'; interface Props { conn: FormattedConn; onDisconnect: (id: string, e: React.MouseEvent) => void; onClick: () => void; } const ConnectionCard = React.memo(function ConnectionCard({ conn, onDisconnect, onClick }: Props) { const { i18n } = useTranslation(); const timeAgo = formatElapsed(conn.start, getDateFnsLocale(i18n.language)); return (
{ if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onClick(); } }} >
{conn.host}
{timeAgo}
{conn.type.replace(/\((.*)\)/, ' | $1')}
{prettyBytes(conn.download)} {prettyBytes(conn.upload)}
{conn.rule} {conn.chains}
{prettyBytes(conn.downloadSpeedCurr)}/s
); }); export default ConnectionCard;