@@ -92,25 +92,31 @@ export const SelectToken = ({
9292 const filteredTokens = useMemo ( ( ) => {
9393 return assetsWithAmounts
9494 . filter ( ( assetWithAmount ) => {
95- if ( assetWithAmount . amount . eq ( 0 ) ) return false ;
96-
97- // Filter by search term
95+ // Filter by search term (if provided)
9896 const matchesSearch =
99- ! ! filter &&
97+ ! filter ||
10098 assetWithAmount . asset . name
10199 . toLowerCase ( )
102100 . includes ( filter . toLowerCase ( ) ) ;
103101
102+ // Filter by network (if provided)
104103 const matchesNetwork =
104+ ! selectedNetwork ||
105105 selectedNetwork ===
106- assetWithAmount . asset . traces ?. [ 0 ] ?. counterparty ?. chain_name ;
107- return ! selectedNetwork ? true : matchesSearch || matchesNetwork ;
106+ assetWithAmount . asset . traces ?. [ 0 ] ?. counterparty ?. chain_name ;
107+
108+ // Filter out zero balances
109+ const hasBalance = ! assetWithAmount . amount . eq ( 0 ) ;
110+
111+ // All conditions must be true
112+ return matchesSearch && matchesNetwork && hasBalance ;
108113 } )
109114 . sort ( ( a , b ) => Number ( b . amount ) - Number ( a . amount ) ) ;
110115 } , [ assetsWithAmounts , filter , selectedNetwork , assetToNetworkMap ] ) ;
111116
112117 const handleNetworkSelect = ( networkName : string ) : void => {
113118 setSelectedNetwork ( selectedNetwork === networkName ? null : networkName ) ;
119+ setFilter ( "" ) ; // Clear search input when network is selected
114120 } ;
115121
116122 const handleWalletAddressChange = ( address : string ) : void => {
@@ -119,6 +125,7 @@ export const SelectToken = ({
119125 } ;
120126
121127 const handleClose = ( ) : void => {
128+ setFilter ( "" ) ;
122129 onClose ( ) ;
123130 } ;
124131
@@ -224,7 +231,10 @@ export const SelectToken = ({
224231 >
225232 < li >
226233 < button
227- onClick = { ( ) => setSelectedNetwork ( null ) }
234+ onClick = { ( ) => {
235+ setFilter ( "" ) ; // Clear search input when "All Networks" is selected
236+ setSelectedNetwork ( null ) ;
237+ } }
228238 className = { `flex items-center gap-3 p-2 w-full rounded-sm transition-colors ${
229239 selectedNetwork === null ?
230240 "bg-white/5 border border-white/20"
@@ -240,9 +250,10 @@ export const SelectToken = ({
240250 { allNetworks . map ( ( network ) => (
241251 < li key = { network . chain_name } >
242252 < button
243- onClick = { ( ) =>
244- handleNetworkSelect ( network . chain_name . toLowerCase ( ) )
245- }
253+ onClick = { ( ) => {
254+ setFilter ( "" ) ;
255+ handleNetworkSelect ( network . chain_name . toLowerCase ( ) ) ;
256+ } }
246257 className = { `flex items-center gap-3 p-2 w-full rounded-sm transition-colors ${
247258 selectedNetwork === network . chain_name ?
248259 "bg-white/5 border border-white/20"
@@ -277,6 +288,8 @@ export const SelectToken = ({
277288 < Search
278289 placeholder = "Insert token name or symbol"
279290 onChange = { setFilter }
291+ value = { filter }
292+ debounceTime = { 0 }
280293 />
281294 </ div >
282295
0 commit comments