mirror of
https://github.com/logos-storage/logos-storage-marketplace-ui.git
synced 2026-01-10 17:33:10 +00:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { Cell, Tooltip } from "@codex-storage/marketplace-ui-components";
|
|
import PurchaseStateIcon from "../../assets/icons/purchases-state-pending.svg?react";
|
|
import SuccessCircleIcon from "../../assets/icons/success-circle.svg?react";
|
|
import ErrorCircleIcon from "../../assets/icons/error-circle.svg?react";
|
|
|
|
type Props = {
|
|
state: string;
|
|
message: string | undefined;
|
|
};
|
|
|
|
export const CustomStateCellRender = ({ state, message }: Props) => {
|
|
const icons = {
|
|
pending: PurchaseStateIcon,
|
|
submitted: PurchaseStateIcon,
|
|
started: PurchaseStateIcon,
|
|
finished: SuccessCircleIcon,
|
|
cancelled: ErrorCircleIcon,
|
|
errored: ErrorCircleIcon,
|
|
};
|
|
|
|
const states = {
|
|
cancelled: "error",
|
|
errored: "error",
|
|
pending: "warning",
|
|
started: "loading",
|
|
submitted: "loading",
|
|
finished: "success",
|
|
};
|
|
|
|
const Icon = icons[state as keyof typeof icons] || PurchaseStateIcon;
|
|
|
|
return (
|
|
<Cell>
|
|
<p className={"cell-state" + states[state as keyof typeof states]}>
|
|
{message ? (
|
|
<Tooltip message={message}>
|
|
<Icon width={20} className="cell-stateIcon" />
|
|
</Tooltip>
|
|
) : (
|
|
<Icon width={20} className="cell-stateIcon" />
|
|
)}
|
|
</p>
|
|
</Cell>
|
|
);
|
|
};
|