mirror of
https://github.com/logos-storage/logos-storage-marketplace-ui.git
synced 2026-01-08 00:13: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
|
<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>
|
||||||
|
|||||||
@ -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],
|
||||||
})),
|
})),
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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))
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})),
|
})),
|
||||||
|
|||||||
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -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[];
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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")
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 ||
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user