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)} />