diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/DailyConnectionsChartCard.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/DailyConnectionsChartCard.tsx index 2ffc1133cb9..8c270d01654 100644 --- a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/DailyConnectionsChartCard.tsx +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/DailyConnectionsChartCard.tsx @@ -15,6 +15,12 @@ import { SelectValue, } from "@/components/ui/select"; import type { WalletStats } from "@3rdweb-sdk/react/hooks/useApi"; +import { DotNetIcon } from "components/icons/brand-icons/DotNetIcon"; +import { ReactIcon } from "components/icons/brand-icons/ReactIcon"; +import { TypeScriptIcon } from "components/icons/brand-icons/TypeScriptIcon"; +import { UnityIcon } from "components/icons/brand-icons/UnityIcon"; +import { UnrealIcon } from "components/icons/brand-icons/UnrealIcon"; +import { DocLink } from "components/shared/DocLink"; import { format } from "date-fns"; import { useMemo, useState } from "react"; import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts"; @@ -129,7 +135,45 @@ export function DailyConnectionsChartCard(props: { {props.isPending ? ( ) : barChartData.length === 0 ? ( - + +
+ + Send your first connect event + +
+ + + + + + +
+
+
) : ( generateRandomData(), []); return (
- - No data available - +
+ {children ?? "No data available"} +
); diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/SponsoredTransactionsChartCard.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/SponsoredTransactionsChartCard.tsx index b852ec4ae9e..c42bfc91d42 100644 --- a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/SponsoredTransactionsChartCard.tsx +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/connect/analytics/_components/SponsoredTransactionsChartCard.tsx @@ -9,6 +9,12 @@ import { ChartTooltipContent, } from "@/components/ui/chart"; import type { UserOpStats } from "@3rdweb-sdk/react/hooks/useApi"; +import { DotNetIcon } from "components/icons/brand-icons/DotNetIcon"; +import { ReactIcon } from "components/icons/brand-icons/ReactIcon"; +import { TypeScriptIcon } from "components/icons/brand-icons/TypeScriptIcon"; +import { UnityIcon } from "components/icons/brand-icons/UnityIcon"; +import { UnrealIcon } from "components/icons/brand-icons/UnrealIcon"; +import { DocLink } from "components/shared/DocLink"; import { format } from "date-fns"; import { useMemo } from "react"; import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"; @@ -41,13 +47,13 @@ export function SponsoredTransactionsChartCard(props: { for (const data of userOpStats) { const chartData = chartDataMap.get(data.date); - if (!chartData) { + if (!chartData && data.sponsoredUsd > 0) { chartDataMap.set(data.date, { time: format(new Date(data.date), "MMM dd"), successful: data.successful, failed: data.failed, }); - } else { + } else if (chartData && data.sponsoredUsd > 0) { chartData.successful += data.successful; chartData.failed += data.failed; } @@ -60,11 +66,11 @@ export function SponsoredTransactionsChartCard(props: { return (
-

+

Sponsored Transactions

-
+
) : barChartData.length === 0 ? ( - + +
+ + Send your first sponsored transaction + +
+ + + + + + +
+
+
) : ( 0) { chartDataMap.set(data.date, { time: format(new Date(data.date), "MMM dd"), sponsoredUsd: data.sponsoredUsd, }); - } else { + } else if (chartData && data.sponsoredUsd > 0) { chartData.sponsoredUsd += data.sponsoredUsd; } } @@ -83,7 +89,43 @@ export function TotalSponsoredChartCard(props: { {props.isPending ? ( ) : barChartData.length === 0 ? ( - + +
+ Sponsor gas for your users +
+ + + + + + +
+
+
) : ( ) : chartData.length === 0 ? ( - + +
+ + Connect any wallet to your app + +
+ + + +
+
+
) : ( ) : chartData.length === 0 ? ( - + +
+ + Connect any wallet to your app + +
+ + + +
+
+
) : ( ); } - -function DocLink(props: { - link: string; - label: string; - icon: React.FC<{ className?: string }>; -}) { - return ( - - - {props.label} - - ); -} diff --git a/apps/dashboard/src/components/shared/DocLink.tsx b/apps/dashboard/src/components/shared/DocLink.tsx new file mode 100644 index 00000000000..ff1bc49e4b4 --- /dev/null +++ b/apps/dashboard/src/components/shared/DocLink.tsx @@ -0,0 +1,18 @@ +import Link from "next/link"; + +export function DocLink(props: { + link: string; + label: string; + icon: React.FC<{ className?: string }>; +}) { + return ( + + + {props.label} + + ); +}