Skip to content

Commit 6258f2f

Browse files
committed
chain/network selector respect hidden feeds
1 parent ca5a9a7 commit 6258f2f

File tree

1 file changed

+67
-16
lines changed

1 file changed

+67
-16
lines changed

src/features/feeds/components/FeedList.tsx

Lines changed: 67 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -474,24 +474,75 @@ export const FeedList = ({
474474
const networkTypes = { mainnet: false, testnet: false }
475475

476476
// Filter networks by feed type
477-
const filteredNetworks = chainMetadata.processedData.networks.filter((network) => {
478-
if (isDeprecating) {
479-
let foundDeprecated = false
480-
network.metadata?.forEach((feed: any) => {
481-
if (feed.feedCategory === "deprecating") {
482-
foundDeprecated = true
477+
const filteredNetworks = chainMetadata.processedData.networks
478+
.filter((network) => {
479+
if (isDeprecating) {
480+
let foundDeprecated = false
481+
network.metadata?.forEach((feed: any) => {
482+
if (feed.feedCategory === "deprecating") {
483+
foundDeprecated = true
484+
}
485+
})
486+
// A deprecating network is relevant only if it still has at least one non-hidden deprecating feed
487+
if (!foundDeprecated) return false
488+
const hasVisible = network.metadata?.some(
489+
(feed: any) => feed.feedCategory === "deprecating" && feed.feedCategory !== "hidden" && !feed.docs?.hidden
490+
)
491+
return !!hasVisible
492+
}
493+
494+
if (isStreams) return network.tags?.includes("streams")
495+
if (isSmartData) return network.tags?.includes("smartData")
496+
if (isRates) return network.tags?.includes("rates")
497+
if (isUSGovernmentMacroeconomicData) return network.tags?.includes("usGovernmentMacroeconomicData")
498+
499+
return true
500+
})
501+
.filter((network) => {
502+
// After tag-level filtering, ensure the network still has at least one visible feed for the current dataFeedType
503+
const feeds = network.metadata || []
504+
const hasVisibleFeed = feeds.some((feed: any) => {
505+
// Universal hidden exclusions
506+
if (feed.feedCategory === "hidden" || feed.docs?.hidden) return false
507+
if (isDeprecating && feed.feedCategory !== "deprecating") return false
508+
509+
if (isStreams) {
510+
if (dataFeedType === "streamsCrypto")
511+
return feed.contractType === "verifier" && ["Crypto", "Crypto-DEX"].includes(feed.docs?.feedType)
512+
if (dataFeedType === "streamsRwa")
513+
return feed.contractType === "verifier" && ["Equities", "Forex"].includes(feed.docs?.feedType)
514+
if (dataFeedType === "streamsNav")
515+
return feed.contractType === "verifier" && feed.docs?.feedType === "Net Asset Value"
516+
if (dataFeedType === "streamsExRate")
517+
return feed.contractType === "verifier" && feed.docs?.productTypeCode === "ExRate"
518+
if (dataFeedType === "streamsBacked")
519+
return feed.contractType === "verifier" && feed.docs?.feedType === "Tokenized Equities"
520+
return false
483521
}
522+
if (isSmartData) {
523+
if (feed.docs?.deliveryChannelCode === "DS") return false
524+
return (
525+
feed.docs?.isMVR === true ||
526+
feed.docs?.productType === "Proof of Reserve" ||
527+
feed.docs?.productType === "NAVLink" ||
528+
feed.docs?.productType === "SmartAUM"
529+
)
530+
}
531+
if (isUSGovernmentMacroeconomicData) return feed.docs?.productTypeCode === "RefMacro"
532+
if (isRates) return feed.docs?.productType === "Rates"
533+
// Default set
534+
return (
535+
!feed.docs?.porType &&
536+
feed.contractType !== "verifier" &&
537+
feed.docs?.productType !== "Proof of Reserve" &&
538+
feed.docs?.productType !== "NAVLink" &&
539+
feed.docs?.productType !== "SmartAUM" &&
540+
feed.docs?.productTypeCode !== "RefMacro" &&
541+
!feed.docs?.isMVR
542+
)
484543
})
485-
return foundDeprecated
486-
}
487-
488-
if (isStreams) return network.tags?.includes("streams")
489-
if (isSmartData) return network.tags?.includes("smartData")
490-
if (isRates) return network.tags?.includes("rates")
491-
if (isUSGovernmentMacroeconomicData) return network.tags?.includes("usGovernmentMacroeconomicData")
492-
493-
return true
494-
})
544+
return hasVisibleFeed
545+
})
495546

496547
// Check available network types
497548
filteredNetworks.forEach((network) => {

0 commit comments

Comments
 (0)