UNPKG

@b3dotfun/anyspend-sdk

Version:

React Hooks and UI Components for AnySpend by B3

65 lines (55 loc) 2.12 kB
import { Order, OrderStatus, OrderType } from "@b3dotfun/anyspend-sdk/types"; export const getStatusDisplay = (order: Order): { text: string; status: "processing" | "success" | "failure" } => { switch (order.status) { case OrderStatus.ScanningDepositTransaction: return { text: order.onrampMetadata ? "Awaiting Payment" : "Awaiting Deposit", status: "processing" }; case OrderStatus.WaitingStripePayment: return { text: "Awaiting Payment", status: "processing" }; case OrderStatus.ObtainToken: return { text: "Obtaining Token", status: "processing" }; case OrderStatus.ObtainFailed: return { text: "Obtain Token Failed", status: "failure" }; case OrderStatus.Expired: return { text: "Order Expired", status: "failure" }; case OrderStatus.SendingTokenFromVault: return { text: "Sending Token", status: "processing" }; case OrderStatus.Relay: return { text: "Executing Order", status: "processing" }; case OrderStatus.Executed: { const text = order.type === OrderType.Swap ? "Swap Complete" : order.type === OrderType.MintNFT ? "NFT Minted" : order.type === OrderType.JoinTournament ? "Tournament Joined" : order.type === OrderType.FundTournament ? "Tournament Funded" : "Order Complete"; return { text, status: "success" }; } case OrderStatus.Refunding: return { text: "Order Refunding", status: "processing" }; case OrderStatus.Refunded: return { text: "Order Refunded", status: "failure" }; case OrderStatus.Failure: return { text: "Order Failure", status: "failure" }; default: throw new Error("Invalid order status"); } }; export const getErrorDisplay = (errorDetails: string): string => { switch (errorDetails) { case "SLIPPAGE": return "The order failed due to price movement exceeding slippage tolerance"; default: { return "The order failed. Please try again or contact support"; } } };