diff --git a/apps/web/src/components/Test/Serves.tsx b/apps/web/src/components/Test/Serves.tsx
index bbb16c7b..10e258b3 100644
--- a/apps/web/src/components/Test/Serves.tsx
+++ b/apps/web/src/components/Test/Serves.tsx
@@ -1,38 +1,22 @@
-import type { Event } from "@prisma/client";
import { DonutChart } from "components/charts/Donut";
-import { useMemo } from "react";
+import type { ProjectClientEvents } from "pages/projects/[projectId]";
import type { ClientOption } from "server/trpc/router/project";
const Serves = ({
pingEvents,
options,
}: {
- pingEvents: Event[];
+ pingEvents: ProjectClientEvents;
options: ClientOption[];
}) => {
const labels = options.map((option) => option.identifier);
- const actualData = useMemo(() => {
- return options.map((option) => {
- return {
- variant: option.identifier,
- events: pingEvents.filter(
- (event) => event.selectedVariant === option.identifier
- ).length,
- };
- });
- }, [options, pingEvents]);
-
- const absPings = actualData.reduce((accumulator, value) => {
- return accumulator + value.events;
- }, 0);
-
return (
acc + e._count._all, 0)}
variants={labels}
- events={actualData}
+ events={pingEvents}
totalText="Visits"
/>
diff --git a/apps/web/src/components/charts/Donut.tsx b/apps/web/src/components/charts/Donut.tsx
index 40565738..a619d945 100644
--- a/apps/web/src/components/charts/Donut.tsx
+++ b/apps/web/src/components/charts/Donut.tsx
@@ -11,6 +11,7 @@ import {
ChartTooltipContent,
} from "components/ui/chart";
import { useMemo } from "react";
+import type { ProjectClientEvents } from "pages/projects/[projectId]";
export function DonutChart({
totalVisits,
@@ -21,7 +22,7 @@ export function DonutChart({
totalVisits: number;
totalText: string;
variants: string[];
- events: Array<{ variant: string; events: number }>;
+ events: ProjectClientEvents;
}) {
const chartConfig = useMemo(
() =>
@@ -42,9 +43,9 @@ export function DonutChart({
const chartData = useMemo(() => {
return events.map((event) => ({
- variant: event.variant,
- events: event.events,
- fill: `var(--color-${event.variant})`,
+ variant: event.selectedVariant,
+ events: event._count._all,
+ fill: `var(--color-${event.selectedVariant})`,
}));
}, [events]);
diff --git a/apps/web/src/pages/projects/[projectId]/index.tsx b/apps/web/src/pages/projects/[projectId]/index.tsx
index 7cd01010..3454968f 100644
--- a/apps/web/src/pages/projects/[projectId]/index.tsx
+++ b/apps/web/src/pages/projects/[projectId]/index.tsx
@@ -1,3 +1,4 @@
+import type { inferRouterOutputs } from "@trpc/server";
import { AddABTestModal } from "components/AddABTestModal";
import { DashboardHeader } from "components/DashboardHeader";
import { Layout } from "components/Layout";
@@ -9,8 +10,12 @@ import type { GetStaticPaths, GetStaticProps } from "next";
import type { NextPageWithLayout } from "pages/_app";
import { useState } from "react";
import { AiOutlinePlus } from "react-icons/ai";
+import type { AppRouter } from "server/trpc/router/_app";
import { trpc } from "utils/trpc";
+export type ProjectClientEvents =
+ inferRouterOutputs
["project"]["getProjectData"]["project"]["tests"][number]["pingEvents"];
+
const Projects: NextPageWithLayout = () => {
const [isCreateTestModalOpen, setIsCreateTestModalOpen] = useState(false);
@@ -59,7 +64,12 @@ const Projects: NextPageWithLayout = () => {