UNPKG

@coin-voyage/paykit

Version:

Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.

41 lines (40 loc) 1.65 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { PayOrderMode } from "@coin-voyage/shared/types"; import ChainLogos from "../assets/chains"; import Logos from "../assets/logos"; import usePayContext from "../components/contexts/pay"; import { PaymentMethod } from "../types/enums"; import { ROUTES } from "../types/routes"; function getTitle(subject, isDeposit) { return `${isDeposit ? "Deposit" : "Pay"} ${subject}`; } export function useMethodOptions({ mode, onClick }) { const { setRoute, paymentState } = usePayContext(); const { setPaymentMethod } = paymentState; const isDeposit = mode === PayOrderMode.DEPOSIT; const options = [ { id: PaymentMethod.Wallet, title: getTitle("with Wallet", isDeposit), iconShape: "squircle", icons: [_jsx(Logos.MetaMask, {}, "metamask"), _jsx(Logos.Rainbow, {}, "rainbow"), _jsx(Logos.Phantom, {}, "phantom")], onClick: () => { setPaymentMethod(PaymentMethod.Wallet); setRoute(ROUTES.SELECT_CHAIN); onClick(); }, }, { id: PaymentMethod.DepositAddress, title: getTitle("to Address", isDeposit), iconShape: "circle", icons: [_jsx(ChainLogos.Ethereum, {}, "ethereum"), _jsx(ChainLogos.Base, {}, "base"), _jsx(ChainLogos.Arbitrum, {}, "arbitrum")], onClick: () => { setPaymentMethod(PaymentMethod.DepositAddress); setRoute(ROUTES.SELECT_PAY_TO_ADDRESS_CHAIN); onClick(); }, }, ]; return { options }; }