show torrent content size

This commit is contained in:
2026-02-03 18:49:46 +03:00
parent 13b132f5f0
commit 155cb3e726
2 changed files with 25 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ import { useDownloadTorrentMutation } from "../api/useDownloadTorrentMutation";
import { useDeleteItemMutation } from "../api/useDeleteItemMutation";
import { useQueryClient } from "@tanstack/react-query";
import dayjs from "dayjs";
import { humanFileSize } from "../utils/humanFileSize";
export type ItemProps = {
item: ItemDetails;
@@ -105,6 +106,7 @@ export const Item = ({ item }: ItemProps) => {
>
<DownloadSimpleIcon size={24} />
</button>
<span>{humanFileSize(torrent.size)}</span>
</div>
</div>
))

View File

@@ -0,0 +1,23 @@
export const humanFileSize = (bytes: number, si = false, dp = 1): string => {
const thresh = si ? 1000 : 1024;
if (Math.abs(bytes) < thresh) {
return bytes + " B";
}
const units = si
? ["kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
: ["KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"];
let u = -1;
const r = 10 ** dp;
do {
bytes /= thresh;
++u;
} while (
Math.round(Math.abs(bytes) * r) / r >= thresh &&
u < units.length - 1
);
return bytes.toFixed(dp) + " " + units[u];
};