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 =