import dayjs from "dayjs"; import { useLockFn } from "ahooks"; import { styled, ListItem, IconButton, ListItemText, Box, alpha, } from "@mui/material"; import { CloseRounded } from "@mui/icons-material"; import { deleteConnection } from "@/services/api"; import parseTraffic from "@/utils/parse-traffic"; const Tag = styled("span")(({ theme }) => ({ fontSize: "10px", padding: "0 4px", lineHeight: 1.375, border: "1px solid", borderRadius: 4, borderColor: alpha(theme.palette.text.secondary, 0.35), marginTop: "4px", marginRight: "4px", })); interface Props { value: IConnectionsItem; onShowDetail?: () => void; } export const ConnectionItem = (props: Props) => { const { value, onShowDetail } = props; const { id, metadata, chains, start, curUpload, curDownload } = value; const onDelete = useLockFn(async () => deleteConnection(id)); const showTraffic = curUpload! >= 100 || curDownload! >= 100; return ( } > {metadata.network} {metadata.type} {!!metadata.process && {metadata.process}} {chains?.length > 0 && ( {[...chains].reverse().join(" / ")} )} {dayjs(start).fromNow()} {showTraffic && ( {parseTraffic(curUpload!)} / {parseTraffic(curDownload!)} )} } /> ); };