diff --git a/src/components/Availability/AvailabilitiesTable.tsx b/src/components/Availability/AvailabilitiesTable.tsx index f00fdb2..7a86d8f 100644 --- a/src/components/Availability/AvailabilitiesTable.tsx +++ b/src/components/Availability/AvailabilitiesTable.tsx @@ -102,7 +102,7 @@ export function AvailabilitiesTable({ availabilities, space }: Props) { ))} diff --git a/src/components/Availability/AvailabilityReservations.tsx b/src/components/Availability/AvailabilityReservations.tsx index 60a12b2..b03a6c9 100644 --- a/src/components/Availability/AvailabilityReservations.tsx +++ b/src/components/Availability/AvailabilityReservations.tsx @@ -90,11 +90,11 @@ export function AvailabilityReservations({ } const totalSize = availability.totalSize; - const totalUsed = data.reduce((acc, val) => acc + parseInt(val.size, 10), 0); + const totalUsed = data.reduce((acc, val) => acc + val.size, 0); const spaceData = [ ...data.map((val, index) => ({ title: val.id, - size: parseInt(val.size, 10), + size: val.size, color: AvailabilityUtils.availabilityColors[index], })), { diff --git a/src/components/Availability/Sunburst.tsx b/src/components/Availability/Sunburst.tsx index a69eb65..739f875 100644 --- a/src/components/Availability/Sunburst.tsx +++ b/src/components/Availability/Sunburst.tsx @@ -81,7 +81,7 @@ export function Sunburst({ availabilities, space }: Props) { }, children: a.slots.map((slot) => ({ name: "", - value: parseFloat(slot.size), + value: slot.size, children: [], itemStyle: { color: AvailabilityUtils.slotColors[index], @@ -93,12 +93,7 @@ export function Sunburst({ availabilities, space }: Props) { color: "#fff", }, formatter: (params: CallbackDataParams) => { - return ( - params.marker + - "Slot " + - slot.id + - Bytes.pretty(parseFloat(slot.size)) - ); + return params.marker + "Slot " + slot.id + Bytes.pretty(slot.size); }, }, })), diff --git a/src/components/FileCellRender/FileCell.tsx b/src/components/FileCellRender/FileCell.tsx index 8cf0484..70a0237 100644 --- a/src/components/FileCellRender/FileCell.tsx +++ b/src/components/FileCellRender/FileCell.tsx @@ -6,8 +6,8 @@ import { } from "@codex-storage/marketplace-ui-components"; import "./FileCell.css"; import { WebStorage } from "../../utils/web-storage"; -import { CodexDataContent } from "@codex-storage/sdk-js"; import { FilesUtils } from "../Files/files.utils"; +import { CodexDataItem } from "@codex-storage/sdk-js"; type FileMetadata = { mimetype: string | null; @@ -19,7 +19,7 @@ type Props = { requestId: string; purchaseCid: string; index: number; - data: CodexDataContent[]; + data: CodexDataItem[]; onMetadata?: (requestId: string, metadata: FileMetadata) => void; }; diff --git a/src/components/Files/FileActions.tsx b/src/components/Files/FileActions.tsx index 1e6eae0..bb9f648 100644 --- a/src/components/Files/FileActions.tsx +++ b/src/components/Files/FileActions.tsx @@ -4,7 +4,6 @@ import { Cell, } from "@codex-storage/marketplace-ui-components"; import { FolderButton } from "./FolderButton"; -import { CodexDataContent } from "@codex-storage/sdk-js"; import { CodexSdk } from "../../sdk/codex"; import "./FileActions.css"; import DownloadIcon from "../../assets/icons/download-file.svg?react"; @@ -14,9 +13,10 @@ import { useIsMobile } from "../../hooks/useMobile"; import { useState } from "react"; import { attributes } from "../../utils/attributes"; import CopyIcon from "../../assets/icons/copy.svg?react"; +import { CodexDataItem } from "@codex-storage/sdk-js"; type Props = { - content: CodexDataContent; + content: CodexDataItem; folders: [string, string[]][]; onFolderToggle: (cid: string, folder: string) => void; onDetails: (cid: string) => void; diff --git a/src/components/Files/FileCell.tsx b/src/components/Files/FileCell.tsx index b29d3a4..f3e43b0 100644 --- a/src/components/Files/FileCell.tsx +++ b/src/components/Files/FileCell.tsx @@ -4,13 +4,13 @@ import { Toast, WebFileIcon, } from "@codex-storage/marketplace-ui-components"; -import { CodexDataContent } from "@codex-storage/sdk-js"; +import { CodexDataItem } from "@codex-storage/sdk-js"; import { useState } from "react"; import "./FileCell.css"; import CopyIcon from "../../assets/icons/copy.svg?react"; type Props = { - content: CodexDataContent; + content: CodexDataItem; }; export function FileCell({ content }: Props) { diff --git a/src/components/Files/FileDetails.tsx b/src/components/Files/FileDetails.tsx index 2dc58c4..b03c102 100644 --- a/src/components/Files/FileDetails.tsx +++ b/src/components/Files/FileDetails.tsx @@ -4,7 +4,7 @@ import { Sheets, WebFileIcon, } from "@codex-storage/marketplace-ui-components"; -import { CodexDataContent, CodexPurchase } from "@codex-storage/sdk-js"; +import { CodexDataItem, CodexPurchase } from "@codex-storage/sdk-js"; import { Bytes } from "../../utils/bytes"; import { CidCopyButton } from "./CidCopyButton"; import "./FileDetails.css"; @@ -19,7 +19,7 @@ import { PurchaseHistory } from "./PurchaseHistory"; import { WebStorage } from "../../utils/web-storage"; type Props = { - details: CodexDataContent | null; + details: CodexDataItem | null; onClose: () => void; }; diff --git a/src/components/Files/FileFilters.tsx b/src/components/Files/FileFilters.tsx index 963786a..51d6bd0 100644 --- a/src/components/Files/FileFilters.tsx +++ b/src/components/Files/FileFilters.tsx @@ -1,4 +1,4 @@ -import { CodexDataContent } from "@codex-storage/sdk-js"; +import { CodexDataItem } from "@codex-storage/sdk-js"; import { FilesUtils } from "./files.utils"; import { classnames } from "../../utils/classnames"; import "./FileFilters.css"; @@ -8,7 +8,7 @@ import ArchiveIcon from "../../assets/icons/archive.svg?react"; import DocumentIcon from "../../assets/icons/document.svg?react"; type Props = { - files: CodexDataContent[]; + files: CodexDataItem[]; onFilterToggle: (filter: string) => void; selected: string[]; }; diff --git a/src/components/Files/Files.tsx b/src/components/Files/Files.tsx index 23a9f2e..8f8a9ee 100644 --- a/src/components/Files/Files.tsx +++ b/src/components/Files/Files.tsx @@ -15,7 +15,7 @@ import { FileDetails } from "./FileDetails.tsx"; import { useData } from "../../hooks/useData.tsx"; import { WebStorage } from "../../utils/web-storage.ts"; import { classnames } from "../../utils/classnames.ts"; -import { CodexDataContent } from "@codex-storage/sdk-js"; +import { CodexDataItem } from "@codex-storage/sdk-js"; import { FilesUtils } from "./files.utils.ts"; import { FilterFilters } from "./FileFilters.tsx"; import { FileCell } from "./FileCell.tsx"; @@ -24,7 +24,7 @@ import PlusIcon from "../../assets/icons/plus.svg?react"; import AllFilesIcon from "../../assets/icons/all.svg?react"; import FavoriteIcon from "../../assets/icons/favorite.svg?react"; -type SortFn = (a: CodexDataContent, b: CodexDataContent) => number; +type SortFn = (a: CodexDataItem, b: CodexDataItem) => number; type Props = { limit?: number; @@ -36,7 +36,7 @@ export function Files({ limit }: Props) { const [folder, setFolder] = useState(""); const [folders, setFolders] = useState<[string, string[]][]>([]); const [error, setError] = useState(""); - const [details, setDetails] = useState(null); + const [details, setDetails] = useState(null); const [sortFn, setSortFn] = useState(() => FilesUtils.sortByDate("desc") ); diff --git a/src/components/Files/PurchaseHistory.tsx b/src/components/Files/PurchaseHistory.tsx index 9777dd1..c2d033f 100644 --- a/src/components/Files/PurchaseHistory.tsx +++ b/src/components/Files/PurchaseHistory.tsx @@ -38,7 +38,7 @@ export function PurchaseHistory({ purchases }: Props) { const rows = sorted .filter((p) => !!p.request) .map((p) => { - const duration = parseInt(p.request!.ask.duration, 10); + const duration = p.request!.ask.duration; return ( (a: CodexDataContent, b: CodexDataContent) => { - const { - manifest: { filename: afilename }, - } = a; - const { - manifest: { filename: bfilename }, - } = b; + sortByName: (state: TabSortState) => (a: CodexDataItem, b: CodexDataItem) => { + const { + manifest: { filename: afilename }, + } = a; + const { + manifest: { filename: bfilename }, + } = b; - return state === "desc" - ? (bfilename || "") - .toLocaleLowerCase() - .localeCompare((afilename || "").toLocaleLowerCase()) - : (afilename || "") - .toLocaleLowerCase() - .localeCompare((bfilename || "").toLocaleLowerCase()); - }, - sortBySize: - (state: TabSortState) => (a: CodexDataContent, b: CodexDataContent) => - state === "desc" - ? b.manifest.datasetSize - a.manifest.datasetSize - : a.manifest.datasetSize - b.manifest.datasetSize, - sortByDate: - (state: TabSortState) => (a: CodexDataContent, b: CodexDataContent) => { - const aUploadedAt = FilesUtils.getUploadedAt(a.cid); - const bUploadedAt = FilesUtils.getUploadedAt(b.cid); + return state === "desc" + ? (bfilename || "") + .toLocaleLowerCase() + .localeCompare((afilename || "").toLocaleLowerCase()) + : (afilename || "") + .toLocaleLowerCase() + .localeCompare((bfilename || "").toLocaleLowerCase()); + }, + sortBySize: (state: TabSortState) => (a: CodexDataItem, b: CodexDataItem) => + state === "desc" + ? b.manifest.datasetSize - a.manifest.datasetSize + : a.manifest.datasetSize - b.manifest.datasetSize, + sortByDate: (state: TabSortState) => (a: CodexDataItem, b: CodexDataItem) => { + const aUploadedAt = FilesUtils.getUploadedAt(a.cid); + const bUploadedAt = FilesUtils.getUploadedAt(b.cid); - return state === "desc" - ? new Date(bUploadedAt).getTime() - new Date(aUploadedAt).getTime() - : new Date(aUploadedAt).getTime() - new Date(bUploadedAt).getTime(); - }, + return state === "desc" + ? new Date(bUploadedAt).getTime() - new Date(aUploadedAt).getTime() + : new Date(aUploadedAt).getTime() - new Date(bUploadedAt).getTime(); + }, removeCidFromFolder( folders: [string, string[]][], @@ -95,7 +92,7 @@ export const FilesUtils = { ? filters.filter((f) => f !== filter) : [...filters, filter], listInFolder( - files: CodexDataContent[], + files: CodexDataItem[], folders: [string, string[]][], index: number ) { @@ -103,7 +100,7 @@ export const FilesUtils = { ? files : files.filter((file) => folders[index - 1][1].includes(file.cid)); }, - applyFilters(files: CodexDataContent[], filters: string[]) { + applyFilters(files: CodexDataItem[], filters: string[]) { return files.filter( (file) => filters.length === 0 || diff --git a/src/components/Purchase/PurchasesTable.tsx b/src/components/Purchase/PurchasesTable.tsx index be1c436..600a792 100644 --- a/src/components/Purchase/PurchasesTable.tsx +++ b/src/components/Purchase/PurchasesTable.tsx @@ -92,7 +92,7 @@ export function PurchasesTable() { .map((p, index) => { const r = p.request!; const ask = r.ask; - const duration = parseInt(ask.duration, 10); + const duration = ask.duration; const pf = ask.proofProbability; return ( (a: CodexPurchase, b: CodexPurchase) => { - const aPrice = parseInt(a.request?.ask.pricePerBytePerSecond, 10); - const bPrice = parseInt(b.request?.ask.pricePerBytePerSecond, 10); + const aPrice = a.request?.ask.pricePerBytePerSecond || 10; + const bPrice = b.request?.ask.pricePerBytePerSecond || 10; return state === "desc" ? bPrice - aPrice : aPrice - bPrice; }, sortByUploadedAt: