UNPKG

@reservoir0x/relay-kit-ui

Version:

Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.

76 lines 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSwapButtonCta = void 0; const react_1 = require("react"); const useSwapButtonCta = ({ fromToken, toToken, multiWalletSupportEnabled, isValidFromAddress, fromChainWalletVMSupported, isValidToAddress, toChainWalletVMSupported, fromChain, toChain, isSameCurrencySameRecipientSwap, debouncedInputAmountValue, debouncedOutputAmountValue, hasInsufficientBalance, isInsufficientLiquidityError, quote, operation }) => { const firstStep = quote?.steps?.[0]; const firstStepItem = firstStep?.items?.[0]; return (0, react_1.useMemo)(() => { if (!fromToken || !toToken) { return 'Select a token'; } if (multiWalletSupportEnabled && !isValidFromAddress && fromChainWalletVMSupported) { return `Select ${fromChain?.displayName} Wallet`; } if (multiWalletSupportEnabled && !isValidToAddress) { return toChainWalletVMSupported ? `Select ${toChain?.displayName} Wallet` : `Enter ${toChain?.displayName} Address`; } if (toChain?.vmType !== 'evm' && !isValidToAddress) { return `Enter ${toChain?.displayName} Address`; } if (isSameCurrencySameRecipientSwap) { return 'Invalid recipient'; } if (!debouncedInputAmountValue || !debouncedOutputAmountValue) { return 'Enter an amount'; } if (hasInsufficientBalance) { return 'Insufficient Balance'; } if (isInsufficientLiquidityError) { return 'Insufficient Liquidity'; } if (!toChainWalletVMSupported && !isValidToAddress) { return `Enter ${toChain?.displayName} Address`; } if (firstStep?.id === 'approve' && firstStepItem?.status === 'incomplete') { return 'Approve & Swap'; } switch (operation) { case 'wrap': return 'Wrap'; case 'unwrap': return 'Unwrap'; case 'send': return 'Send'; case 'swap': return 'Swap'; case 'bridge': return 'Bridge'; default: return 'Confirm'; } }, [ fromToken, toToken, multiWalletSupportEnabled, isValidFromAddress, fromChainWalletVMSupported, isValidToAddress, toChainWalletVMSupported, toChain, isSameCurrencySameRecipientSwap, debouncedInputAmountValue, debouncedOutputAmountValue, hasInsufficientBalance, isInsufficientLiquidityError, firstStep, operation ]); }; exports.useSwapButtonCta = useSwapButtonCta; //# sourceMappingURL=useSwapButtonCta.js.map