import React from "react"; import { clearCompletedDownloads, deleteDownload, deleteOnceDownloads, killDownload, restartDownload, retryOnceDownloads } from "../../api"; import {Link} from "react-router"; import { APIButton, DisableDownloadsToggle, ErrorMessage, formatFrequency, isoDatetimeToElapsedPopup, useTitle, WROLModeMessage } from "../Common"; import { Button as SButton, ButtonGroup, Label, Loader, PlaceholderLine, TableBody, TableCell, TableFooter, TableHeader, TableHeaderCell, TableRow } from "semantic-ui-react"; import {Button, Header, Modal, ModalActions, ModalContent, ModalHeader, Placeholder, Segment, Table} from "../Theme"; import {useDownloads} from "../../hooks/customHooks"; import { EditArchiveDownloadForm, EditChannelDownloadForm, EditRSSDownloadForm, EditScrapeFilesDownloadForm, EditVideosDownloadForm, EditZimDownloadForm } from "../Download"; import {Downloaders} from "../Vars"; function ClearDownloadsButton({callback}) { async function localClearDownloads() { try { await clearCompletedDownloads(); } finally { if (callback) { callback() } } } return <> Clear } function RetryDownloadsButton({callback}) { async function localRetryOnce() { try { await retryOnceDownloads(); } finally { if (callback) { callback() } } } return Retry } function DeleteOnceDownloadsButton({callback}) { async function localDeleteOnce() { try { await deleteOnceDownloads(); } finally { if (callback) { callback() } } } return Delete } function RecurringDownloadRow({download, fetchDownloads, onDelete}) { const [errorModalOpen, setErrorModalOpen] = React.useState(false); const [editModalOpen, setEditModalOpen] = React.useState(false); const handleRestart = async () => { const {id} = download; try { await restartDownload(id); } finally { if (fetchDownloads) { await fetchDownloads(); } } } const handleEditOpen = () => setEditModalOpen(true); const handleEditClose = () => setEditModalOpen(false); const handleErrorOpen = () => setErrorModalOpen(true); const handleErrorClose = () => setErrorModalOpen(false); let { url, frequency, last_successful_download, status, location, next_download, error, downloader, } = download; const link = location ? (text) => {text} : (text) => {text}; const errorModal = } > Download Error
{error}
Close
; const editButton =