@@ -217,41 +217,7 @@ export const FeedList = ({
217217 const chainMetadata = useGetChainMetadata ( chain , initialCache && initialCache [ chain . page ] )
218218 const wrapperRef = useRef ( null )
219219
220- // Determine available network types for the current chain
221- const availableNetworkTypes = useMemo ( ( ) => {
222- if ( ! chainMetadata . processedData ?. networks ) return { mainnet : false , testnet : false }
223-
224- const networkTypes = {
225- mainnet : false ,
226- testnet : false ,
227- }
228-
229- chainMetadata . processedData . networks . forEach ( ( network ) => {
230- if ( network . networkType === "mainnet" ) {
231- networkTypes . mainnet = true
232- } else if ( network . networkType === "testnet" ) {
233- networkTypes . testnet = true
234- }
235- } )
236-
237- return networkTypes
238- } , [ chainMetadata . processedData ?. networks ] )
239-
240- // Auto-adjust selectedNetworkType based on what's available
241- useEffect ( ( ) => {
242- if ( ! chainMetadata . loading && chainMetadata . processedData ) {
243- const { mainnet, testnet } = availableNetworkTypes
244220
245- // If current selection is not available, switch to what's available
246- if ( selectedNetworkType === "mainnet" && ! mainnet && testnet ) {
247- setSelectedNetworkType ( "testnet" )
248- } else if ( selectedNetworkType === "testnet" && ! testnet && mainnet ) {
249- setSelectedNetworkType ( "mainnet" )
250- }
251- // If both are available, keep current selection
252- // If neither are available, keep current selection (edge case)
253- }
254- } , [ chainMetadata . loading , chainMetadata . processedData , availableNetworkTypes , selectedNetworkType ] )
255221
256222 // scroll handler
257223 useEffect ( ( ) => {
@@ -446,6 +412,57 @@ export const FeedList = ({
446412 const isDeprecating = ecosystem === "deprecating"
447413 let netCount = 0
448414
415+ // Available network types for current feed type
416+ const availableNetworkTypes = useMemo ( ( ) => {
417+ if ( ! chainMetadata . processedData ?. networks ) return { mainnet : false , testnet : false }
418+
419+ const networkTypes = { mainnet : false , testnet : false }
420+
421+ // Filter networks by feed type
422+ const filteredNetworks = chainMetadata . processedData . networks . filter ( ( network ) => {
423+ if ( isDeprecating ) {
424+ let foundDeprecated = false
425+ network . metadata ?. forEach ( ( feed : any ) => {
426+ if ( feed . feedCategory === "deprecating" ) {
427+ foundDeprecated = true
428+ }
429+ } )
430+ return foundDeprecated
431+ }
432+
433+ if ( isStreams ) return network . tags ?. includes ( "streams" )
434+ if ( isSmartData ) return network . tags ?. includes ( "smartData" )
435+ if ( isRates ) return network . tags ?. includes ( "rates" )
436+ if ( isUSGovernmentMacroeconomicData ) return network . tags ?. includes ( "usGovernmentMacroeconomicData" )
437+
438+ return true
439+ } )
440+
441+ // Check available network types
442+ filteredNetworks . forEach ( ( network ) => {
443+ if ( network . networkType === "mainnet" ) {
444+ networkTypes . mainnet = true
445+ } else if ( network . networkType === "testnet" ) {
446+ networkTypes . testnet = true
447+ }
448+ } )
449+
450+ return networkTypes
451+ } , [ chainMetadata . processedData ?. networks , isDeprecating , isStreams , isSmartData , isRates , isUSGovernmentMacroeconomicData ] )
452+
453+ // Auto-switch network type if current selection isn't available
454+ useEffect ( ( ) => {
455+ if ( ! chainMetadata . loading && chainMetadata . processedData ) {
456+ const { mainnet, testnet } = availableNetworkTypes
457+
458+ if ( selectedNetworkType === "mainnet" && ! mainnet && testnet ) {
459+ setSelectedNetworkType ( "testnet" )
460+ } else if ( selectedNetworkType === "testnet" && ! testnet && mainnet ) {
461+ setSelectedNetworkType ( "mainnet" )
462+ }
463+ }
464+ } , [ chainMetadata . loading , chainMetadata . processedData , availableNetworkTypes , selectedNetworkType , dataFeedType , ecosystem ] )
465+
449466 const streamsMainnetSectionTitle =
450467 dataFeedType === "streamsCrypto"
451468 ? "Mainnet Crypto Streams"
@@ -773,16 +790,16 @@ export const FeedList = ({
773790 if ( foundDeprecated ) {
774791 netCount ++
775792 }
776- return foundDeprecated
793+ return foundDeprecated && network . networkType === selectedNetworkType
777794 }
778795
779- if ( isStreams ) return network . tags ?. includes ( "streams" )
796+ if ( isStreams ) return network . tags ?. includes ( "streams" ) && network . networkType === selectedNetworkType
780797
781- if ( isSmartData ) return network . tags ?. includes ( "smartData" )
798+ if ( isSmartData ) return network . tags ?. includes ( "smartData" ) && network . networkType === selectedNetworkType
782799
783- if ( isRates ) return network . tags ?. includes ( "rates" )
800+ if ( isRates ) return network . tags ?. includes ( "rates" ) && network . networkType === selectedNetworkType
784801
785- if ( isUSGovernmentMacroeconomicData ) return network . tags ?. includes ( "usGovernmentMacroeconomicData" )
802+ if ( isUSGovernmentMacroeconomicData ) return network . tags ?. includes ( "usGovernmentMacroeconomicData" ) && network . networkType === selectedNetworkType
786803
787804 // Filter by selected network type (mainnet/testnet)
788805 return network . networkType === selectedNetworkType
0 commit comments