Fix types

This commit is contained in:
Arnaud 2025-04-02 17:25:27 +02:00
parent 00efd97653
commit 680371bb7d
No known key found for this signature in database
GPG Key ID: 69D6CE281FCAE663
13 changed files with 51 additions and 59 deletions

View File

@ -102,7 +102,7 @@ export function AvailabilitiesTable({ availabilities, space }: Props) {
<SlotRow <SlotRow
key={slot.id} key={slot.id}
active={showDetails} active={showDetails}
bytes={parseFloat(slot.size)} bytes={slot.size}
id={slot.id}></SlotRow> id={slot.id}></SlotRow>
))} ))}
</Fragment> </Fragment>

View File

@ -90,11 +90,11 @@ export function AvailabilityReservations({
} }
const totalSize = availability.totalSize; 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 = [ const spaceData = [
...data.map((val, index) => ({ ...data.map((val, index) => ({
title: val.id, title: val.id,
size: parseInt(val.size, 10), size: val.size,
color: AvailabilityUtils.availabilityColors[index], color: AvailabilityUtils.availabilityColors[index],
})), })),
{ {

View File

@ -81,7 +81,7 @@ export function Sunburst({ availabilities, space }: Props) {
}, },
children: a.slots.map((slot) => ({ children: a.slots.map((slot) => ({
name: "", name: "",
value: parseFloat(slot.size), value: slot.size,
children: [], children: [],
itemStyle: { itemStyle: {
color: AvailabilityUtils.slotColors[index], color: AvailabilityUtils.slotColors[index],
@ -93,12 +93,7 @@ export function Sunburst({ availabilities, space }: Props) {
color: "#fff", color: "#fff",
}, },
formatter: (params: CallbackDataParams) => { formatter: (params: CallbackDataParams) => {
return ( return params.marker + "Slot " + slot.id + Bytes.pretty(slot.size);
params.marker +
"Slot " +
slot.id +
Bytes.pretty(parseFloat(slot.size))
);
}, },
}, },
})), })),

View File

@ -6,8 +6,8 @@ import {
} from "@codex-storage/marketplace-ui-components"; } from "@codex-storage/marketplace-ui-components";
import "./FileCell.css"; import "./FileCell.css";
import { WebStorage } from "../../utils/web-storage"; import { WebStorage } from "../../utils/web-storage";
import { CodexDataContent } from "@codex-storage/sdk-js";
import { FilesUtils } from "../Files/files.utils"; import { FilesUtils } from "../Files/files.utils";
import { CodexDataItem } from "@codex-storage/sdk-js";
type FileMetadata = { type FileMetadata = {
mimetype: string | null; mimetype: string | null;
@ -19,7 +19,7 @@ type Props = {
requestId: string; requestId: string;
purchaseCid: string; purchaseCid: string;
index: number; index: number;
data: CodexDataContent[]; data: CodexDataItem[];
onMetadata?: (requestId: string, metadata: FileMetadata) => void; onMetadata?: (requestId: string, metadata: FileMetadata) => void;
}; };

View File

@ -4,7 +4,6 @@ import {
Cell, Cell,
} from "@codex-storage/marketplace-ui-components"; } from "@codex-storage/marketplace-ui-components";
import { FolderButton } from "./FolderButton"; import { FolderButton } from "./FolderButton";
import { CodexDataContent } from "@codex-storage/sdk-js";
import { CodexSdk } from "../../sdk/codex"; import { CodexSdk } from "../../sdk/codex";
import "./FileActions.css"; import "./FileActions.css";
import DownloadIcon from "../../assets/icons/download-file.svg?react"; import DownloadIcon from "../../assets/icons/download-file.svg?react";
@ -14,9 +13,10 @@ import { useIsMobile } from "../../hooks/useMobile";
import { useState } from "react"; import { useState } from "react";
import { attributes } from "../../utils/attributes"; import { attributes } from "../../utils/attributes";
import CopyIcon from "../../assets/icons/copy.svg?react"; import CopyIcon from "../../assets/icons/copy.svg?react";
import { CodexDataItem } from "@codex-storage/sdk-js";
type Props = { type Props = {
content: CodexDataContent; content: CodexDataItem;
folders: [string, string[]][]; folders: [string, string[]][];
onFolderToggle: (cid: string, folder: string) => void; onFolderToggle: (cid: string, folder: string) => void;
onDetails: (cid: string) => void; onDetails: (cid: string) => void;

View File

@ -4,13 +4,13 @@ import {
Toast, Toast,
WebFileIcon, WebFileIcon,
} from "@codex-storage/marketplace-ui-components"; } 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 { useState } from "react";
import "./FileCell.css"; import "./FileCell.css";
import CopyIcon from "../../assets/icons/copy.svg?react"; import CopyIcon from "../../assets/icons/copy.svg?react";
type Props = { type Props = {
content: CodexDataContent; content: CodexDataItem;
}; };
export function FileCell({ content }: Props) { export function FileCell({ content }: Props) {

View File

@ -4,7 +4,7 @@ import {
Sheets, Sheets,
WebFileIcon, WebFileIcon,
} from "@codex-storage/marketplace-ui-components"; } 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 { Bytes } from "../../utils/bytes";
import { CidCopyButton } from "./CidCopyButton"; import { CidCopyButton } from "./CidCopyButton";
import "./FileDetails.css"; import "./FileDetails.css";
@ -19,7 +19,7 @@ import { PurchaseHistory } from "./PurchaseHistory";
import { WebStorage } from "../../utils/web-storage"; import { WebStorage } from "../../utils/web-storage";
type Props = { type Props = {
details: CodexDataContent | null; details: CodexDataItem | null;
onClose: () => void; onClose: () => void;
}; };

View File

@ -1,4 +1,4 @@
import { CodexDataContent } from "@codex-storage/sdk-js"; import { CodexDataItem } from "@codex-storage/sdk-js";
import { FilesUtils } from "./files.utils"; import { FilesUtils } from "./files.utils";
import { classnames } from "../../utils/classnames"; import { classnames } from "../../utils/classnames";
import "./FileFilters.css"; import "./FileFilters.css";
@ -8,7 +8,7 @@ import ArchiveIcon from "../../assets/icons/archive.svg?react";
import DocumentIcon from "../../assets/icons/document.svg?react"; import DocumentIcon from "../../assets/icons/document.svg?react";
type Props = { type Props = {
files: CodexDataContent[]; files: CodexDataItem[];
onFilterToggle: (filter: string) => void; onFilterToggle: (filter: string) => void;
selected: string[]; selected: string[];
}; };

View File

@ -15,7 +15,7 @@ import { FileDetails } from "./FileDetails.tsx";
import { useData } from "../../hooks/useData.tsx"; import { useData } from "../../hooks/useData.tsx";
import { WebStorage } from "../../utils/web-storage.ts"; import { WebStorage } from "../../utils/web-storage.ts";
import { classnames } from "../../utils/classnames.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 { FilesUtils } from "./files.utils.ts";
import { FilterFilters } from "./FileFilters.tsx"; import { FilterFilters } from "./FileFilters.tsx";
import { FileCell } from "./FileCell.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 AllFilesIcon from "../../assets/icons/all.svg?react";
import FavoriteIcon from "../../assets/icons/favorite.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 = { type Props = {
limit?: number; limit?: number;
@ -36,7 +36,7 @@ export function Files({ limit }: Props) {
const [folder, setFolder] = useState(""); const [folder, setFolder] = useState("");
const [folders, setFolders] = useState<[string, string[]][]>([]); const [folders, setFolders] = useState<[string, string[]][]>([]);
const [error, setError] = useState(""); const [error, setError] = useState("");
const [details, setDetails] = useState<CodexDataContent | null>(null); const [details, setDetails] = useState<CodexDataItem | null>(null);
const [sortFn, setSortFn] = useState<SortFn>(() => const [sortFn, setSortFn] = useState<SortFn>(() =>
FilesUtils.sortByDate("desc") FilesUtils.sortByDate("desc")
); );

View File

@ -38,7 +38,7 @@ export function PurchaseHistory({ purchases }: Props) {
const rows = sorted const rows = sorted
.filter((p) => !!p.request) .filter((p) => !!p.request)
.map((p) => { .map((p) => {
const duration = parseInt(p.request!.ask.duration, 10); const duration = p.request!.ask.duration;
return ( return (
<Row <Row

View File

@ -1,5 +1,5 @@
import { TabSortState } from "@codex-storage/marketplace-ui-components"; import { TabSortState } from "@codex-storage/marketplace-ui-components";
import { CodexDataContent } from "@codex-storage/sdk-js"; import { CodexDataItem } from "@codex-storage/sdk-js";
const archiveMimetypes = [ const archiveMimetypes = [
"application/zip", "application/zip",
@ -37,8 +37,7 @@ export const FilesUtils = {
return "document"; return "document";
}, },
sortByName: sortByName: (state: TabSortState) => (a: CodexDataItem, b: CodexDataItem) => {
(state: TabSortState) => (a: CodexDataContent, b: CodexDataContent) => {
const { const {
manifest: { filename: afilename }, manifest: { filename: afilename },
} = a; } = a;
@ -54,13 +53,11 @@ export const FilesUtils = {
.toLocaleLowerCase() .toLocaleLowerCase()
.localeCompare((bfilename || "").toLocaleLowerCase()); .localeCompare((bfilename || "").toLocaleLowerCase());
}, },
sortBySize: sortBySize: (state: TabSortState) => (a: CodexDataItem, b: CodexDataItem) =>
(state: TabSortState) => (a: CodexDataContent, b: CodexDataContent) =>
state === "desc" state === "desc"
? b.manifest.datasetSize - a.manifest.datasetSize ? b.manifest.datasetSize - a.manifest.datasetSize
: a.manifest.datasetSize - b.manifest.datasetSize, : a.manifest.datasetSize - b.manifest.datasetSize,
sortByDate: sortByDate: (state: TabSortState) => (a: CodexDataItem, b: CodexDataItem) => {
(state: TabSortState) => (a: CodexDataContent, b: CodexDataContent) => {
const aUploadedAt = FilesUtils.getUploadedAt(a.cid); const aUploadedAt = FilesUtils.getUploadedAt(a.cid);
const bUploadedAt = FilesUtils.getUploadedAt(b.cid); const bUploadedAt = FilesUtils.getUploadedAt(b.cid);
@ -95,7 +92,7 @@ export const FilesUtils = {
? filters.filter((f) => f !== filter) ? filters.filter((f) => f !== filter)
: [...filters, filter], : [...filters, filter],
listInFolder( listInFolder(
files: CodexDataContent[], files: CodexDataItem[],
folders: [string, string[]][], folders: [string, string[]][],
index: number index: number
) { ) {
@ -103,7 +100,7 @@ export const FilesUtils = {
? files ? files
: files.filter((file) => folders[index - 1][1].includes(file.cid)); : files.filter((file) => folders[index - 1][1].includes(file.cid));
}, },
applyFilters(files: CodexDataContent[], filters: string[]) { applyFilters(files: CodexDataItem[], filters: string[]) {
return files.filter( return files.filter(
(file) => (file) =>
filters.length === 0 || filters.length === 0 ||

View File

@ -92,7 +92,7 @@ export function PurchasesTable() {
.map((p, index) => { .map((p, index) => {
const r = p.request!; const r = p.request!;
const ask = r.ask; const ask = r.ask;
const duration = parseInt(ask.duration, 10); const duration = ask.duration;
const pf = ask.proofProbability; const pf = ask.proofProbability;
return ( return (
<Row <Row

View File

@ -22,8 +22,8 @@ export const PurchaseUtils = {
: Number(a.request?.ask.duration) - Number(b.request?.ask.duration), : Number(a.request?.ask.duration) - Number(b.request?.ask.duration),
sortByReward: sortByReward:
(state: TabSortState) => (a: CodexPurchase, b: CodexPurchase) => { (state: TabSortState) => (a: CodexPurchase, b: CodexPurchase) => {
const aPrice = parseInt(a.request?.ask.pricePerBytePerSecond, 10); const aPrice = a.request?.ask.pricePerBytePerSecond || 10;
const bPrice = parseInt(b.request?.ask.pricePerBytePerSecond, 10); const bPrice = b.request?.ask.pricePerBytePerSecond || 10;
return state === "desc" ? bPrice - aPrice : aPrice - bPrice; return state === "desc" ? bPrice - aPrice : aPrice - bPrice;
}, },
sortByUploadedAt: sortByUploadedAt: