diff --git a/.changeset/fine-bobcats-rhyme.md b/.changeset/fine-bobcats-rhyme.md new file mode 100644 index 00000000000..03fb37b6a23 --- /dev/null +++ b/.changeset/fine-bobcats-rhyme.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +Fix Select Token UI stuck in loading state if wallet is connected to a chain that is not supported by thirdweb Bridge in BuyWidget, SwapWidget and BridgeWidget diff --git a/packages/thirdweb/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx b/packages/thirdweb/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx index fe78747bab9..b587ae214a3 100644 --- a/packages/thirdweb/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx +++ b/packages/thirdweb/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx @@ -45,11 +45,11 @@ type SelectTokenUIProps = { activeWalletInfo: ActiveWalletInfo | undefined; }; -function getDefaultSelectedChain( - chains: BridgeChain[], - activeChainId: number | undefined, -) { - return chains.find((chain) => chain.chainId === (activeChainId || 1)); +function findChain(chains: BridgeChain[], activeChainId: number | undefined) { + if (!activeChainId) { + return undefined; + } + return chains.find((chain) => chain.chainId === activeChainId); } /** @@ -67,11 +67,9 @@ export function SelectToken(props: SelectTokenUIProps) { const selectedChain = _selectedChain || (chainQuery.data - ? getDefaultSelectedChain( - chainQuery.data, - props.selectedToken?.chainId || - props.activeWalletInfo?.activeChain.id, - ) + ? findChain(chainQuery.data, props.selectedToken?.chainId) || + findChain(chainQuery.data, props.activeWalletInfo?.activeChain.id) || + findChain(chainQuery.data, 1) : undefined); // all tokens