mirror of
https://github.com/logos-storage/logos-storage-marketplace-ui.git
synced 2026-01-02 13:33:06 +00:00
Fix types
This commit is contained in:
parent
00efd97653
commit
680371bb7d
@ -102,7 +102,7 @@ export function AvailabilitiesTable({ availabilities, space }: Props) {
|
||||
<SlotRow
|
||||
key={slot.id}
|
||||
active={showDetails}
|
||||
bytes={parseFloat(slot.size)}
|
||||
bytes={slot.size}
|
||||
id={slot.id}></SlotRow>
|
||||
))}
|
||||
</Fragment>
|
||||
|
||||
@ -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],
|
||||
})),
|
||||
{
|
||||
|
||||
@ -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);
|
||||
},
|
||||
},
|
||||
})),
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
|
||||
@ -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[];
|
||||
};
|
||||
|
||||
@ -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<CodexDataContent | null>(null);
|
||||
const [details, setDetails] = useState<CodexDataItem | null>(null);
|
||||
const [sortFn, setSortFn] = useState<SortFn>(() =>
|
||||
FilesUtils.sortByDate("desc")
|
||||
);
|
||||
|
||||
@ -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 (
|
||||
<Row
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { TabSortState } from "@codex-storage/marketplace-ui-components";
|
||||
import { CodexDataContent } from "@codex-storage/sdk-js";
|
||||
import { CodexDataItem } from "@codex-storage/sdk-js";
|
||||
|
||||
const archiveMimetypes = [
|
||||
"application/zip",
|
||||
@ -37,37 +37,34 @@ export const FilesUtils = {
|
||||
|
||||
return "document";
|
||||
},
|
||||
sortByName:
|
||||
(state: TabSortState) => (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 ||
|
||||
|
||||
@ -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 (
|
||||
<Row
|
||||
|
||||
@ -22,8 +22,8 @@ export const PurchaseUtils = {
|
||||
: Number(a.request?.ask.duration) - Number(b.request?.ask.duration),
|
||||
sortByReward:
|
||||
(state: TabSortState) => (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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user