@@ -7,9 +7,12 @@ import {
77 useMemo ,
88 useRef ,
99 useState ,
10- type FC
10+ type FC ,
11+ type Dispatch ,
12+ type SetStateAction
1113} from 'react'
1214import { useRelayClient } from '../../../../hooks/index.js'
15+ import useFallbackState from '../../../../hooks/useFallbackState.js'
1316import type { Address } from 'viem'
1417import { formatUnits } from 'viem'
1518import { usePublicClient } from 'wagmi'
@@ -40,6 +43,8 @@ type BaseTokenWidgetProps = {
4043 setFromToken ?: ( token ?: Token ) => void
4144 toToken ?: Token
4245 setToToken ?: ( token ?: Token ) => void
46+ activeTab ?: 'buy' | 'sell'
47+ setActiveTab ?: ( tab : 'buy' | 'sell' ) => void
4348 defaultToAddress ?: Address
4449 defaultAmount ?: string
4550 defaultTradeType ?: 'EXACT_INPUT' | 'EXPECTED_OUTPUT'
@@ -90,6 +95,8 @@ const TokenWidget: FC<TokenWidgetProps> = ({
9095 setFromToken : setExternalFromToken ,
9196 toToken : externalToToken ,
9297 setToToken : setExternalToToken ,
98+ activeTab : externalActiveTab ,
99+ setActiveTab : setExternalActiveTab ,
93100 defaultToAddress,
94101 defaultAmount,
95102 defaultTradeType,
@@ -172,7 +179,15 @@ const TokenWidget: FC<TokenWidgetProps> = ({
172179 const [ usdInputValue , setUsdInputValue ] = useState ( '' )
173180 const [ usdOutputValue , setUsdOutputValue ] = useState ( '' )
174181 const [ tokenInputCache , setTokenInputCache ] = useState ( '' )
175- const [ activeTab , setActiveTab ] = useState < 'buy' | 'sell' > ( 'buy' )
182+ const [ activeTab , setActiveTab ] = useFallbackState < 'buy' | 'sell' > (
183+ setExternalActiveTab && externalActiveTab ? externalActiveTab : 'buy' ,
184+ setExternalActiveTab && externalActiveTab
185+ ? [
186+ externalActiveTab ,
187+ setExternalActiveTab as Dispatch < SetStateAction < 'buy' | 'sell' > >
188+ ]
189+ : undefined
190+ )
176191 const tabTokenStateRef = useRef < {
177192 buy : { fromToken ?: Token ; toToken ?: Token }
178193 sell : { fromToken ?: Token ; toToken ?: Token }
0 commit comments