diff --git a/packages/web/src/components/swap/confirm-swap-modal/ConfirmSwapModal.tsx b/packages/web/src/components/swap/confirm-swap-modal/ConfirmSwapModal.tsx index c2c33a72b..b8ab8e186 100644 --- a/packages/web/src/components/swap/confirm-swap-modal/ConfirmSwapModal.tsx +++ b/packages/web/src/components/swap/confirm-swap-modal/ConfirmSwapModal.tsx @@ -14,8 +14,8 @@ import { PriceImpactStatus } from "@hooks/swap/data/use-swap-handler"; import { SwapResultInfo } from "@models/swap/swap-result-info"; import { swapDirectionToGuaranteedType, SwapSummaryInfo } from "@models/swap/swap-summary-info"; import { SwapTokenInfo } from "@models/swap/swap-token-info"; -import { formatOtherPrice } from "@utils/new-number-utils"; -import { toNumberFormat } from "@utils/number-utils"; +import { floorNumber, toNumberFormat } from "@utils/number-utils"; +import { convertToKMB } from "@utils/stake-position-utils"; import { convertSwapRate } from "../swap-card-content-detail/SwapCardContentDetail"; @@ -55,23 +55,27 @@ const ConfirmSwapModal: React.FC = ({ const { t } = useTranslation(); const swapRateDescription = useMemo(() => { - const { tokenA, tokenB, swapRate } = swapSummaryInfo; + const { tokenA, tokenB, swapRate, swapRateAction } = swapSummaryInfo; + + if (swapRateAction === "ATOB") { + return ( + <> + 1 {tokenA.symbol} =  + +  {tokenB.symbol} + + ); + } + return ( <> - 1 {tokenA.symbol} =  + 1 {tokenB.symbol} =  -  {tokenB.symbol} +  {tokenA.symbol} ); }, [swapSummaryInfo]); - const swapRateUSDStr = useMemo(() => { - const swapRateStr = formatOtherPrice(swapSummaryInfo.swapRateUSD, { - isKMB: false, - }); - return `(${swapRateStr})`; - }, [swapSummaryInfo.swapRateUSD]); - const priceImpactStr = useMemo(() => { const priceImpact = swapSummaryInfo.priceImpact; return `${priceImpact}%`; @@ -123,6 +127,22 @@ const ConfirmSwapModal: React.FC = ({ } }, [priceImpactStatus, t]); + const unitSwapPrice = useMemo(() => { + const { swapRateAction, swapRate } = swapSummaryInfo; + const { tokenAUSD, tokenBUSD, tokenAAmount, tokenBAmount } = swapTokenInfo; + if (swapRateAction === "ATOB") { + if (!tokenBUSD || tokenBUSD === 0) return "-"; + return `($${convertToKMB(floorNumber((tokenBUSD / Number(tokenBAmount)) * swapRate).toFixed(3), { + isIgnoreKFormat: true, + })})`; + } else { + if (!tokenAUSD || tokenAUSD === 0) return "-"; + return `($${convertToKMB(floorNumber((tokenAUSD / Number(tokenAAmount)) * swapRate).toFixed(3), { + isIgnoreKFormat: true, + })})`; + } + }, [swapSummaryInfo, swapTokenInfo]); + return (
= ({
{swapRateDescription} - {swapRateUSDStr} + {unitSwapPrice}