}
+ stat={
}
/>
}
+ stat={
+
+ }
/>
+
}
/>
}
/>
diff --git a/apps/insights/src/components/PriceComponentsCard/index.module.scss b/apps/insights/src/components/PriceComponentsCard/index.module.scss
deleted file mode 100644
index 9c0965c61a..0000000000
--- a/apps/insights/src/components/PriceComponentsCard/index.module.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-@use "@pythnetwork/component-library/theme";
-
-.componentName {
- display: flex;
- flex-flow: row nowrap;
- align-items: center;
- gap: theme.spacing(6);
-}
diff --git a/apps/insights/src/components/PriceComponentsCard/index.tsx b/apps/insights/src/components/PriceComponentsCard/index.tsx
index c286a75e62..f5ba71bed3 100644
--- a/apps/insights/src/components/PriceComponentsCard/index.tsx
+++ b/apps/insights/src/components/PriceComponentsCard/index.tsx
@@ -17,7 +17,6 @@ import { useQueryState, parseAsStringEnum, parseAsBoolean } from "nuqs";
import { type ReactNode, Suspense, useMemo, useCallback } from "react";
import { useFilter, useCollator } from "react-aria";
-import styles from "./index.module.scss";
import { useQueryParamFilterPagination } from "../../hooks/use-query-param-filter-pagination";
import { Cluster } from "../../services/pyth";
import {
@@ -45,12 +44,12 @@ type Props
= {
label: string;
searchPlaceholder: string;
onPriceComponentAction: (component: T) => void;
+ toolbarExtra?: ReactNode;
};
type PriceComponent = {
id: string;
score: number | undefined;
- symbol: string;
uptimeScore: number | undefined;
deviationScore: number | undefined;
stalledScore: number | undefined;
@@ -172,16 +171,7 @@ export const ResolvedPriceComponentsCard = ({
paginatedItems.map((component) => ({
id: component.id,
data: {
- name: (
-
- {component.name}
- {component.cluster === Cluster.PythtestConformance && (
-
- test
-
- )}
-
- ),
+ name: component.name,
...(showQuality
? {
score: component.score !== undefined && (
@@ -212,18 +202,21 @@ export const ResolvedPriceComponentsCard = ({
feedKey={component.feedKey}
publisherKey={component.publisherKey}
field="publishSlot"
+ cluster={component.cluster}
/>
),
price: (
),
confidence: (
),
}),
@@ -285,6 +278,7 @@ type PriceComponentsCardProps = Pick<
| "nameLoadingSkeleton"
| "label"
| "searchPlaceholder"
+ | "toolbarExtra"
> &
(
| { isLoading: true }
@@ -315,6 +309,7 @@ export const PriceComponentsCardContents = ({
nameLoadingSkeleton,
label,
searchPlaceholder,
+ toolbarExtra,
...props
}: PriceComponentsCardProps) => {
const collator = useCollator();
@@ -333,6 +328,7 @@ export const PriceComponentsCardContents = ({
}
toolbar={
<>
+ {toolbarExtra}
diff --git a/apps/insights/src/components/PriceFeed/price-feed-select.tsx b/apps/insights/src/components/PriceFeed/price-feed-select.tsx
index 15a05bf87b..6b4c4025a1 100644
--- a/apps/insights/src/components/PriceFeed/price-feed-select.tsx
+++ b/apps/insights/src/components/PriceFeed/price-feed-select.tsx
@@ -20,6 +20,7 @@ import { useCollator, useFilter } from "react-aria";
import styles from "./price-feed-select.module.scss";
import { usePriceFeeds } from "../../hooks/use-price-feeds";
+import { Cluster } from "../../services/pyth";
import { AssetClassTag } from "../AssetClassTag";
import { PriceFeedTag } from "../PriceFeedTag";
@@ -42,7 +43,7 @@ export const PriceFeedSelect = ({ children }: Props) => {
([, { displaySymbol, assetClass, key }]) =>
filter.contains(displaySymbol, search) ||
filter.contains(assetClass, search) ||
- filter.contains(key, search),
+ filter.contains(key[Cluster.Pythnet], search),
),
[feeds, search, filter],
);
diff --git a/apps/insights/src/components/PriceFeed/publishers-card.tsx b/apps/insights/src/components/PriceFeed/publishers-card.tsx
index 6237127edf..a5f530cb3a 100644
--- a/apps/insights/src/components/PriceFeed/publishers-card.tsx
+++ b/apps/insights/src/components/PriceFeed/publishers-card.tsx
@@ -1,18 +1,16 @@
"use client";
import { useLogger } from "@pythnetwork/app-logger";
-import {
- useQueryState,
- parseAsString, // , parseAsBoolean
-} from "nuqs";
+import { Switch } from "@pythnetwork/component-library/Switch";
+import { useQueryState, parseAsString, parseAsBoolean } from "nuqs";
import { type ComponentProps, Suspense, useCallback, useMemo } from "react";
+import { Cluster, ClusterToName } from "../../services/pyth";
import { PriceComponentDrawer } from "../PriceComponentDrawer";
import {
PriceComponentsCardContents,
ResolvedPriceComponentsCard,
} from "../PriceComponentsCard";
-// import { Cluster } from "../../services/pyth";
type Publisher = ComponentProps<
typeof ResolvedPriceComponentsCard
@@ -26,80 +24,98 @@ type Props = Omit<
"onPriceComponentAction" | "priceComponents"
> & {
priceComponents: Publisher[];
+ symbol: string;
+ displaySymbol: string;
};
-export const PublishersCard = ({ priceComponents, ...props }: Props) => (
+export const PublishersCard = ({
+ priceComponents,
+ symbol,
+ displaySymbol,
+ ...props
+}: Props) => (