"use client";

import { TrendingUp } from "lucide-react";
import { Bar, BarChart, XAxis, YAxis } from "recharts";

import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import {
  ChartContainer,
  ChartTooltip,
  ChartTooltipContent,
} from "@/components/ui/chart";
import { trpc } from "@/app/_trpc/client";

export default function UserTaskChart({ searchParams }: { searchParams: Record<string, string> }) {
  const [usersData] = trpc.users.getUserRecentCompleatedTasks.useSuspenseQuery(searchParams, {
    refetchOnMount: false,
    refetchOnWindowFocus: false,
  });


  const chartConfig = usersData
    ? usersData.reduce((acc, { user }, index) => {
        if (!user) return acc; 
        const numChart = index + 1 >= 5 ? 5 : index + 1;
        acc[user.toLowerCase()] = {
          label: user,
          color: `hsl(var(--chart-${numChart}))`,
        };
        return acc;
      }, {} as Record<string, { label: string; color: string }>)
    : {};

  const chartData = usersData?.map(({ user, total }) => ({
    usuario: user?.toLowerCase() || "Unknown",
    total,
    fill: `var(--color-${user?.toLowerCase() || "unknown"})`,
  }));


  return (
    <Card className="h-full bg-white">
      <CardHeader>
        <CardTitle>Tareas completadas y revisasas</CardTitle>
        <CardDescription>Enero - hoy</CardDescription>
      </CardHeader>
      <CardContent>
            <ChartContainer config={chartConfig} className=" min-h-[150px]  min-w-[300px] ">
          <BarChart
            accessibilityLayer
            data={chartData}
            layout="vertical"
            margin={{
              left: 0,
            }}
          >
            <YAxis
              dataKey="usuario"
              type="category"
              tickLine={false}
              tickMargin={10}
              axisLine={false}
              tickFormatter={(value) =>
                chartConfig[value as keyof typeof chartConfig]?.label
              }
            />
            <XAxis dataKey="total" type="number" hide />
            <ChartTooltip
              cursor={false}
              content={<ChartTooltipContent hideLabel />}
            />
            <Bar dataKey="total" layout="vertical" radius={5} />
          </BarChart>
        </ChartContainer>
      </CardContent>
 
    </Card>
  );
}
