diff --git a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/analytics/ContractAnalyticsPage.tsx b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/analytics/ContractAnalyticsPage.tsx
index 07aece61b01..78448352c51 100644
--- a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/analytics/ContractAnalyticsPage.tsx
+++ b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/analytics/ContractAnalyticsPage.tsx
@@ -1,6 +1,6 @@
"use client";
import { ThirdwebBarChart } from "@/components/blocks/charts/bar-chart";
-import { Skeleton, Stat, StatLabel, StatNumber } from "@chakra-ui/react";
+import { SkeletonContainer } from "@/components/ui/skeleton";
import type { UseQueryResult } from "@tanstack/react-query";
import {
type AnalyticsQueryParams,
@@ -14,9 +14,9 @@ import {
useTotalContractTransactionAnalytics,
useTotalContractUniqueWallets,
} from "data/analytics/hooks";
-import { Suspense, useMemo, useState } from "react";
+import { formatDate } from "date-fns";
+import { useMemo, useState } from "react";
import type { ThirdwebContract } from "thirdweb";
-import { Card } from "tw-components";
import {
DateRangeSelector,
type Range,
@@ -121,6 +121,15 @@ type ChartProps = {
startDate: Date;
endDate: Date;
};
+
+function toolTipLabelFormatter(_v: string, item: unknown) {
+ if (Array.isArray(item)) {
+ const time = item[0].payload.time as number;
+ return formatDate(new Date(time), "MMM d, yyyy");
+ }
+ return undefined;
+}
+
function UniqueWalletsChart(props: ChartProps) {
const analyticsQuery = useContractUniqueWalletAnalytics(props);
@@ -128,6 +137,7 @@ function UniqueWalletsChart(props: ChartProps) {
);
}
@@ -156,6 +168,7 @@ function TotalTransactionsChart(props: ChartProps) {
);
}
@@ -179,6 +194,7 @@ function TotalEventsChart(props: ChartProps) {
);
}
@@ -227,6 +245,7 @@ function FunctionBreakdownChart(
);
}
@@ -283,6 +304,7 @@ function EventBreakdownChart(
);
}
@@ -320,25 +344,12 @@ const AnalyticsStat: React.FC = ({
useTotal,
}) => {
return (
- }>
-
-
- );
-};
-
-const AnalyticsSkeleton: React.FC<{ label: string }> = ({ label }) => {
- return (
-
- {label}
-
- {0}
-
-
+
);
};
@@ -355,20 +366,23 @@ const AnalyticsData: React.FC = ({
chainId,
});
- const data = useMemo(() => {
- if (!totalQuery.data) {
- return 0;
- }
-
- return totalQuery.data.count;
- }, [totalQuery.data]);
+ return ;
+};
+function AnalyticsStatUI(props: {
+ label: string;
+ data: number | undefined;
+}) {
return (
-
- {label}
-
- {data.toLocaleString()}
-
-
+
+ - {props.label}
+ {
+ return - {v.toLocaleString()}
;
+ }}
+ />
+
);
-};
+}
diff --git a/apps/dashboard/src/global.css b/apps/dashboard/src/global.css
index 4fed648d0b6..a1635c8d49f 100644
--- a/apps/dashboard/src/global.css
+++ b/apps/dashboard/src/global.css
@@ -198,4 +198,5 @@ input:-webkit-autofill:active {
body {
--chakra-zIndices-modal: 50;
--chakra-zIndices-overlay: 50;
+ --chakra-colors-chakra-border-color: hsl(var(--border));
}