Skip to content

Commit

Permalink
Add StatusCode enum
Browse files Browse the repository at this point in the history
  • Loading branch information
egbertbouman committed Feb 21, 2025
1 parent c89505c commit 75ecbe5
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 15 deletions.
20 changes: 16 additions & 4 deletions src/tribler/ui/src/models/download.model.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,29 @@ 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;
progress: number;
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;
Expand Down
10 changes: 6 additions & 4 deletions src/tribler/ui/src/pages/Downloads/Details.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -57,8 +57,10 @@ export default function DownloadDetails({ download }: { download: Download | und
</div>
<div className="flex flex-row">
<div className="basis-1/4">{t('Status')}</div>
{download.status_code == 6 && <div className="basis-3/4 text-red-600">Error: {download.error}</div>}
{download.status_code != 6 && <div className="basis-3/4">{capitalize(download.status)}</div>}
{download.status_code == StatusCode.STOPPED_ON_ERROR &&
<div className="basis-3/4 text-red-600">Error: {download.error}</div>}
{download.status_code != StatusCode.STOPPED_ON_ERROR &&
<div className="basis-3/4">{capitalize(download.status)}</div>}
</div>
<div className="flex flex-row">
<div className="basis-1/4">{t('Filesize')}</div>
Expand All @@ -80,7 +82,7 @@ export default function DownloadDetails({ download }: { download: Download | und
<TooltipProvider>
<Tooltip>
<TooltipTrigger>
<InfoIcon className="w-4 ml-2"/>
<InfoIcon className="w-4 ml-2" />
</TooltipTrigger>
<TooltipContent>
<span>
Expand Down
4 changes: 2 additions & 2 deletions src/tribler/ui/src/pages/Downloads/Files.tsx
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -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]);

Expand Down
12 changes: 7 additions & 5 deletions src/tribler/ui/src/pages/Downloads/index.tsx
Original file line number Diff line number Diff line change
@@ -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";
Expand Down Expand Up @@ -53,7 +53,7 @@ const downloadColumns: ColumnDef<Download>[] = [
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";
Expand Down Expand Up @@ -110,7 +110,7 @@ const downloadColumns: ColumnDef<Download>[] = [
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 <span>-</span>
return <span>{formatTimeRelative(row.original.eta, false)}</span>
},
Expand Down Expand Up @@ -208,7 +208,8 @@ export default function Downloads({ statusFilter }: { statusFilter: number[] })
<Card className="border-none shadow-none">
<CardHeader className="md:flex-row md:justify-between space-y-0 items-center px-4 py-1.5">
<div className="flex flex-nowrap items-center">
<ActionButtons selectedDownloads={selectedDownloads.filter((d) => d.status !== "LOADING")} />
<ActionButtons selectedDownloads={
selectedDownloads.filter((d) => d.status_code !== StatusCode.LOADING)} />
</div>
<div>
<div className="flex items-center">
Expand Down Expand Up @@ -236,7 +237,8 @@ export default function Downloads({ statusFilter }: { statusFilter: number[] })
selectOnRightClick={true}
/>
</ContextMenuTrigger>
<ActionMenu selectedDownloads={selectedDownloads.filter((d) => d.status !== "LOADING")} />
<ActionMenu selectedDownloads={
selectedDownloads.filter((d) => d.status_code !== StatusCode.LOADING)} />
</ContextMenu>

</Card>
Expand Down

0 comments on commit 75ecbe5

Please sign in to comment.