diff --git a/src/ui/views/Bridge/Component/BridgeSlippage.tsx b/src/ui/views/Bridge/Component/BridgeSlippage.tsx index cbdf9e2fe29..fad78bdfedc 100644 --- a/src/ui/views/Bridge/Component/BridgeSlippage.tsx +++ b/src/ui/views/Bridge/Component/BridgeSlippage.tsx @@ -53,7 +53,7 @@ const SlippageItem = styled.div` const BRIDGE_SLIPPAGE = ['0.5', '1']; -const SWAP_SLIPPAGE = ['0.1', '0.5']; +export const SWAP_SLIPPAGE = ['0.5', '3']; const BRIDGE_MAX_SLIPPAGE = 10; @@ -215,6 +215,16 @@ export const BridgeSlippage = memo((props: BridgeSlippageProps) => { [onChange, setAutoSlippage, setIsCustomSlippage] ); + useEffect(() => { + if ( + !autoSlippage && + !isCustomSlippage && + SLIPPAGE.findIndex((item) => item === value) === -1 + ) { + setIsCustomSlippage(true); + } + }, [SLIPPAGE, autoSlippage, isCustomSlippage, setIsCustomSlippage, value]); + useEffect(() => { if (tips) { setSlippageOpen(true); diff --git a/src/ui/views/Swap/Component/Main.tsx b/src/ui/views/Swap/Component/Main.tsx index f126787ecfb..73247fb290c 100644 --- a/src/ui/views/Swap/Component/Main.tsx +++ b/src/ui/views/Swap/Component/Main.tsx @@ -45,6 +45,7 @@ import { BridgeSwitchBtn } from '../../Bridge/Component/BridgeSwitchButton'; import { BridgeShowMore } from '../../Bridge/Component/BridgeShowMore'; import { ReactComponent as RcIconWarningCC } from '@/ui/assets/warning-cc.svg'; import useDebounceValue from '@/ui/hooks/useDebounceValue'; +import { SWAP_SLIPPAGE } from '../../Bridge/Component/BridgeSlippage'; const getDisabledTips: SelectChainItemProps['disabledTips'] = (ctx) => { const chainItem = findChainByServerID(ctx.chain.serverId); @@ -416,7 +417,7 @@ export const Main = () => { !!payToken && !!receiveToken && activeProvider && - Number(slippage) > 1 + Number(slippage) >= Number(SWAP_SLIPPAGE[1]) ) { setShowMoreOpen(true); } diff --git a/src/ui/views/Swap/hooks/slippage.tsx b/src/ui/views/Swap/hooks/slippage.tsx index 65d3130ae68..ce906632dee 100644 --- a/src/ui/views/Swap/hooks/slippage.tsx +++ b/src/ui/views/Swap/hooks/slippage.tsx @@ -68,3 +68,7 @@ export const useSwapSlippage = () => { ...slippageStore, }; }; + +export const getSwapAutoSlippageValue = (isStableCoin: boolean) => { + return isStableCoin ? '0.1' : '1'; +}; diff --git a/src/ui/views/Swap/hooks/token.tsx b/src/ui/views/Swap/hooks/token.tsx index 5d7721badf2..93cb6b8e254 100644 --- a/src/ui/views/Swap/hooks/token.tsx +++ b/src/ui/views/Swap/hooks/token.tsx @@ -21,7 +21,7 @@ import { useAsyncInitializeChainList } from '@/ui/hooks/useChain'; import { SWAP_SUPPORT_CHAINS } from '@/constant'; import { findChain, findChainByEnum } from '@/utils/chain'; import { GasLevelType } from '../Component/ReserveGasPopup'; -import { useSwapSlippage } from './slippage'; +import { getSwapAutoSlippageValue, useSwapSlippage } from './slippage'; import { useLowCreditState } from '../Component/LowCreditModal'; const useTokenInfo = ({ @@ -399,7 +399,7 @@ export const useTokenPair = (userAddress: string) => { setFeeRate('0'); } if (slippageObj.autoSlippage) { - slippageObj.setSlippage(isStableCoin ? '0.1' : '0.5'); + slippageObj.setSlippage(getSwapAutoSlippageValue(isStableCoin)); } }, [slippageObj.autoSlippage, isWrapToken, isStableCoin]);