diff --git a/src/tribler/ui/src/models/download.model.tsx b/src/tribler/ui/src/models/download.model.tsx index d7635307ca..49722a6c97 100644 --- a/src/tribler/ui/src/models/download.model.tsx +++ b/src/tribler/ui/src/models/download.model.tsx @@ -5,8 +5,20 @@ import { File } from "./file.model"; import { Tracker } from "./tracker.model"; -type state = 'ALLOCATING_DISKSPACE' | 'WAITING_FOR_HASHCHECK' | 'HASHCHECKING' | 'DOWNLOADING' | - 'SEEDING' | 'STOPPED' | 'STOPPED_ON_ERROR' | 'METADATA' | 'LOADING' | 'EXIT_NODES'; +export enum StatusCode { + ALLOCATING_DISKSPACE = 0, + WAITING_FOR_HASHCHECK = 1, + HASHCHECKING = 2, + DOWNLOADING = 3, + SEEDING = 4, + STOPPED = 5, + STOPPED_ON_ERROR = 6, + METADATA = 7, + LOADING = 8, + EXIT_NODES = 9 +} + +export type Status = keyof typeof StatusCode; export interface Download { name: string; @@ -14,8 +26,8 @@ export interface Download { infohash: string; speed_down: number; speed_up: number; - status: state; - status_code: number; + status: Status; + status_code: StatusCode; size: number; eta: number; num_peers: number; diff --git a/src/tribler/ui/src/pages/Downloads/Details.tsx b/src/tribler/ui/src/pages/Downloads/Details.tsx index a56bc17af6..835bc81cea 100644 --- a/src/tribler/ui/src/pages/Downloads/Details.tsx +++ b/src/tribler/ui/src/pages/Downloads/Details.tsx @@ -10,7 +10,7 @@ import Peers from "./Peers"; import Trackers from "./Trackers"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"; -import { Download } from "@/models/download.model"; +import { Download, StatusCode } from "@/models/download.model"; import Pieces from "./Pieces"; import { useLayoutEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; @@ -57,8 +57,10 @@ export default function DownloadDetails({ download }: { download: Download | und
{t('Status')}
- {download.status_code == 6 &&
Error: {download.error}
} - {download.status_code != 6 &&
{capitalize(download.status)}
} + {download.status_code == StatusCode.STOPPED_ON_ERROR && +
Error: {download.error}
} + {download.status_code != StatusCode.STOPPED_ON_ERROR && +
{capitalize(download.status)}
}
{t('Filesize')}
@@ -80,7 +82,7 @@ export default function DownloadDetails({ download }: { download: Download | und - + diff --git a/src/tribler/ui/src/pages/Downloads/Files.tsx b/src/tribler/ui/src/pages/Downloads/Files.tsx index aa73083b57..e5255e3e79 100644 --- a/src/tribler/ui/src/pages/Downloads/Files.tsx +++ b/src/tribler/ui/src/pages/Downloads/Files.tsx @@ -1,7 +1,7 @@ import toast from 'react-hot-toast'; import { ColumnDef, Row } from "@tanstack/react-table"; import { FileTreeItem } from "@/models/file.model"; -import { Download } from "@/models/download.model"; +import { Download, StatusCode } from "@/models/download.model"; import { Dispatch, MutableRefObject, SetStateAction, useEffect, useMemo, useRef, useState } from "react"; import { isErrorDict } from "@/services/reporting"; import { triblerService } from "@/services/tribler.service"; @@ -103,7 +103,7 @@ export default function Files({ download }: { download: Download }) { }, []); useEffect(() => { - if (download.status_code === 3) + if (download.status_code === StatusCode.DOWNLOADING) updateFiles(setFiles, download, initialized); }, [download]); diff --git a/src/tribler/ui/src/pages/Downloads/index.tsx b/src/tribler/ui/src/pages/Downloads/index.tsx index 6bf1e0bc8a..327af707ee 100644 --- a/src/tribler/ui/src/pages/Downloads/index.tsx +++ b/src/tribler/ui/src/pages/Downloads/index.tsx @@ -1,7 +1,7 @@ import { ActionButtons, ActionMenu } from "./Actions"; import DownloadDetails from "./Details"; import SimpleTable, { getHeader } from "@/components/ui/simple-table" -import { Download } from "@/models/download.model"; +import { Download, StatusCode } from "@/models/download.model"; import { Progress } from "@/components/ui/progress" import { capitalize, formatBytes, formatDateTime, formatTimeRelative } from "@/lib/utils"; import { isErrorDict } from "@/services/reporting"; @@ -53,7 +53,7 @@ const downloadColumns: ColumnDef[] = [ let progress = row.original.progress * 100; let color = "bg-tribler"; - if (row.original.status_code == 6) { + if (row.original.status_code == StatusCode.STOPPED_ON_ERROR) { status = "Error"; progress = 100; color = "bg-red-600"; @@ -110,7 +110,7 @@ const downloadColumns: ColumnDef[] = [ hide_by_default: true, }, cell: ({ row }) => { - if (row.original.progress === 1 || row.original.status_code !== 3) + if (row.original.progress === 1 || row.original.status_code !== StatusCode.DOWNLOADING) return - return {formatTimeRelative(row.original.eta, false)} }, @@ -208,7 +208,8 @@ export default function Downloads({ statusFilter }: { statusFilter: number[] })
- d.status !== "LOADING")} /> + d.status_code !== StatusCode.LOADING)} />
@@ -236,7 +237,8 @@ export default function Downloads({ statusFilter }: { statusFilter: number[] }) selectOnRightClick={true} /> - d.status !== "LOADING")} /> + d.status_code !== StatusCode.LOADING)} />