import 'fontsource-roboto' import { forwardRef, useState } from 'react' import { UnfoldMore as UnfoldMoreIcon, Close as CloseIcon, Delete as DeleteIcon } from '@material-ui/icons' import { getPeerString, humanizeSize, shortenText } from 'utils/Utils' import { torrentsHost } from 'utils/Hosts' import { NoImageIcon } from 'icons' import DialogTorrentDetailsContent from 'components/DialogTorrentDetailsContent' import Dialog from '@material-ui/core/Dialog' import Slide from '@material-ui/core/Slide' import { Button, DialogActions, DialogTitle, useMediaQuery, useTheme } from '@material-ui/core' import axios from 'axios' import ptt from 'parse-torrent-title' import { useTranslation } from 'react-i18next' import { StyledButton, TorrentCard, TorrentCardButtons, TorrentCardDescription, TorrentCardPoster } from './style' const Transition = forwardRef((props, ref) => ) export default function Torrent({ torrent }) { // eslint-disable-next-line no-unused-vars const { t } = useTranslation() const [isDetailedInfoOpened, setIsDetailedInfoOpened] = useState(false) const [isDeleteTorrentOpened, setIsDeleteTorrentOpened] = useState(false) const theme = useTheme() const fullScreen = useMediaQuery(theme.breakpoints.down('md')) const openDetailedInfo = () => setIsDetailedInfoOpened(true) const closeDetailedInfo = () => setIsDetailedInfoOpened(false) const openDeleteTorrentAlert = () => setIsDeleteTorrentOpened(true) const closeDeleteTorrentAlert = () => setIsDeleteTorrentOpened(false) const { title, name, poster, torrent_size: torrentSize, download_speed: downloadSpeed, hash } = torrent const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash }) const deleteTorrent = () => axios.post(torrentsHost(), { action: 'rem', hash }) const parsedTitle = (title || name) && ptt.parse(title || name).title return ( <> {poster ? : } {t('Details')} dropTorrent(torrent)}> {t('Drop')} {t('Delete')} {t('Name')} {shortenText(parsedTitle, 100)} {t('Size')} {torrentSize > 0 && humanizeSize(torrentSize)} {t('Speed')} {downloadSpeed > 0 ? humanizeSize(downloadSpeed) : '---'} {t('Peers')} {getPeerString(torrent) || '---'} {t('DeleteTorrent?')} {t('Cancel')} { deleteTorrent(torrent) closeDeleteTorrentAlert() }} color='primary' autoFocus > {t('OK')} > ) }