@@ -23,7 +23,7 @@ export function ChainSelector({
2323 onNetworkTypeChange,
2424 dataFeedType = "default" ,
2525 availableNetworkTypes = { mainnet : true , testnet : true } ,
26- selectedNetworkType : externalSelectedNetworkType
26+ selectedNetworkType : externalSelectedNetworkType ,
2727} : ChainSelectorProps ) {
2828 const [ isOpen , setIsOpen ] = useState ( false )
2929 const [ selectedNetworkType , setSelectedNetworkType ] = useState < "mainnet" | "testnet" > (
@@ -43,13 +43,14 @@ export function ChainSelector({
4343 if ( dataFeedType . includes ( "streams" ) ) return chain . tags ?. includes ( "streams" ) ?? false
4444 if ( dataFeedType === "smartdata" ) return chain . tags ?. includes ( "smartData" ) ?? false
4545 if ( dataFeedType === "rates" ) return chain . tags ?. includes ( "rates" ) ?? false
46- if ( dataFeedType === "usGovernmentMacroeconomicData" ) return chain . tags ?. includes ( "usGovernmentMacroeconomicData" ) ?? false
46+ if ( dataFeedType === "usGovernmentMacroeconomicData" )
47+ return chain . tags ?. includes ( "usGovernmentMacroeconomicData" ) ?? false
4748 return chain . tags ?. includes ( "default" ) ?? false
4849 } ) ( )
49-
50+
5051 // Filter by search term
5152 const matchesSearch = ! searchTerm || chain . label . toLowerCase ( ) . includes ( searchTerm . toLowerCase ( ) )
52-
53+
5354 return matchesDataFeedType && matchesSearch
5455 } )
5556
@@ -71,20 +72,16 @@ export function ChainSelector({
7172 }
7273 } , [ isOpen , focusedIndex , filteredChains ] )
7374
74-
75-
7675 // Scroll focused item into view
7776 useEffect ( ( ) => {
7877 if ( focusedIndex >= 0 && chainOptionsRef . current [ focusedIndex ] ) {
7978 chainOptionsRef . current [ focusedIndex ] ?. scrollIntoView ( {
80- behavior : ' smooth' ,
81- block : ' nearest'
79+ behavior : " smooth" ,
80+ block : " nearest" ,
8281 } )
8382 }
8483 } , [ focusedIndex ] )
8584
86-
87-
8885 const toggleDropdown = ( ) => {
8986 setIsOpen ( ! isOpen )
9087 if ( ! isOpen ) {
@@ -111,19 +108,19 @@ export function ChainSelector({
111108 switch ( e . key ) {
112109 case "ArrowDown" :
113110 e . preventDefault ( )
114- setFocusedIndex ( prev => ( prev < filteredChains . length - 1 ? prev + 1 : prev ) )
111+ setFocusedIndex ( ( prev ) => ( prev < filteredChains . length - 1 ? prev + 1 : prev ) )
115112 break
116113 case "ArrowUp" :
117114 e . preventDefault ( )
118- setFocusedIndex ( prev => ( prev > 0 ? prev - 1 : prev ) )
115+ setFocusedIndex ( ( prev ) => ( prev > 0 ? prev - 1 : prev ) )
119116 break
120117 case "PageDown" :
121118 e . preventDefault ( )
122- setFocusedIndex ( prev => Math . min ( prev + 5 , filteredChains . length - 1 ) )
119+ setFocusedIndex ( ( prev ) => Math . min ( prev + 5 , filteredChains . length - 1 ) )
123120 break
124121 case "PageUp" :
125122 e . preventDefault ( )
126- setFocusedIndex ( prev => Math . max ( prev - 5 , 0 ) )
123+ setFocusedIndex ( ( prev ) => Math . max ( prev - 5 , 0 ) )
127124 break
128125 case "Enter" :
129126 e . preventDefault ( )
@@ -142,7 +139,7 @@ export function ChainSelector({
142139
143140 const handleNetworkTypeToggle = ( networkType : "mainnet" | "testnet" ) => {
144141 setSelectedNetworkType ( networkType )
145-
142+
146143 // Notify parent component about the network type change
147144 if ( onNetworkTypeChange ) {
148145 onNetworkTypeChange ( networkType , selectedChain )
@@ -160,13 +157,13 @@ export function ChainSelector({
160157 type = "button"
161158 >
162159 < div className = { styles . selectedChain } >
163- < img
164- src = { selectedChain . img }
165- alt = { `${ selectedChain . label } icon` }
166- className = { styles . chainIcon }
167- width = { 28 }
168- height = { 28 }
169- />
160+ < img
161+ src = { selectedChain . img }
162+ alt = { `${ selectedChain . label } icon` }
163+ className = { styles . chainIcon }
164+ width = { 28 }
165+ height = { 28 }
166+ />
170167 < span className = { styles . chainLabel } > { selectedChain . label } </ span >
171168 </ div >
172169 < div className = { clsx ( styles . caret , isOpen && styles . caretOpen ) } >
@@ -184,7 +181,9 @@ export function ChainSelector({
184181 ) }
185182 onClick = { ( ) => availableNetworkTypes . mainnet && handleNetworkTypeToggle ( "mainnet" ) }
186183 disabled = { ! availableNetworkTypes . mainnet }
187- title = { ! availableNetworkTypes . mainnet ? `${ selectedChain . label } feeds are not available on mainnet` : undefined }
184+ title = {
185+ ! availableNetworkTypes . mainnet ? `${ selectedChain . label } feeds are not available on mainnet` : undefined
186+ }
188187 >
189188 Mainnet
190189 </ button >
@@ -197,7 +196,9 @@ export function ChainSelector({
197196 ) }
198197 onClick = { ( ) => availableNetworkTypes . testnet && handleNetworkTypeToggle ( "testnet" ) }
199198 disabled = { ! availableNetworkTypes . testnet }
200- title = { ! availableNetworkTypes . testnet ? `${ selectedChain . label } feeds are not available on testnet` : undefined }
199+ title = {
200+ ! availableNetworkTypes . testnet ? `${ selectedChain . label } feeds are not available on testnet` : undefined
201+ }
201202 >
202203 Testnet
203204 </ button >
@@ -269,14 +270,12 @@ export function ChainSelector({
269270 </ button >
270271 ) ) }
271272 { filteredChains . length === 0 && (
272- < div className = { styles . noResults } >
273- No chains found matching "{ searchTerm } "
274- </ div >
273+ < div className = { styles . noResults } > No chains found matching "{ searchTerm } "</ div >
275274 ) }
276275 </ div >
277276 </ div >
278277 </ div >
279278 ) }
280279 </ div >
281280 )
282- }
281+ }
0 commit comments