"use client"; import { trpc } from "~/lib/trpc/client.js"; import type { WidgetProps } from "~/components/dashboard/widget-registry.js"; import { InfoTooltip } from "~/components/ui/InfoTooltip.js"; function healthDot(value: number): string { if (value >= 70) return "bg-green-500"; if (value >= 40) return "bg-amber-400"; return "bg-red-500"; } function scoreBadge(score: number): string { if (score >= 70) return "bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"; if (score >= 40) return "bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300"; return "bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300"; } export function ProjectHealthWidget(_props: WidgetProps) { const { data, isLoading } = trpc.dashboard.getProjectHealth.useQuery( undefined, { staleTime: 60_000, placeholderData: (prev) => prev }, ); if (isLoading && !data) { return (
|
Project |
B / S / T |
Score |
|---|---|---|
| {row.shortCode} {row.projectName} |
|
{row.compositeScore} |