"use client";
import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from "recharts";
import { useLocale } from "@calcom/lib/hooks/useLocale";
interface RoutingFunnelData {
name: string;
formattedDateFull: string;
totalSubmissions: number;
successfulRoutings: number;
acceptedBookings: number;
}
interface RoutingFunnelContentProps {
data: RoutingFunnelData[];
enabledLegend?: Array<{ label: string; color: string }>;
}
const COLOR = {
TOTAL: "#9AA2F7",
SUCCESFUL: "#89CFB5",
ACCEPTED: "#F7A1A1",
};
export const legend = [
{ label: "Total Submissions", color: COLOR.TOTAL },
{ label: "Successful Routings", color: COLOR.SUCCESFUL },
{ label: "Accepted Bookings", color: COLOR.ACCEPTED },
];
export function RoutingFunnelContent({ data, enabledLegend }: RoutingFunnelContentProps) {
const { t } = useLocale();
const activeAreas = enabledLegend || legend;
return (
{payload[0].payload.formattedDateFull}
{payload.map((entry, index: number) => { const value = entry.value; let displayValue = value.toString(); if (entry.dataKey === "successfulRoutings" || entry.dataKey === "acceptedBookings") { const percentage = totalSubmissions > 0 ? ((value / totalSubmissions) * 100).toFixed(1) : "0"; displayValue = `${value} (${percentage}%)`; } return ({entry.name}: {displayValue}
); })}