refactor(web): remove unnecessary "use client" from 6 pure-render components

BenchResourceCard, MobileProjectCard, MobileCapacityCard, DynamicFieldRenderer,
BudgetStatusBar, and TimelineHeader use no hooks, event handlers, or browser APIs —
they can be server components, reducing client bundle size.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-11 23:36:34 +02:00
parent e08ee94546
commit 8f7c69056f
6 changed files with 122 additions and 65 deletions
@@ -1,5 +1,3 @@
"use client";
import Link from "next/link";
interface BenchResourceCardProps {
@@ -29,11 +27,7 @@ export function BenchResourceCard({
.join("");
const availabilityLevel =
availableHoursPerDay >= 6
? "high"
: availableHoursPerDay >= 3
? "medium"
: "low";
availableHoursPerDay >= 6 ? "high" : availableHoursPerDay >= 3 ? "medium" : "low";
const levelClass =
availabilityLevel === "high"
@@ -55,10 +49,14 @@ export function BenchResourceCard({
<div className={`rounded-xl border p-4 space-y-3 ${levelClass}`}>
<div className="flex items-start gap-3">
<div className="h-10 w-10 shrink-0 rounded-full bg-brand-100 dark:bg-brand-900/40 flex items-center justify-center">
<span className="text-sm font-semibold text-brand-700 dark:text-brand-300">{initials}</span>
<span className="text-sm font-semibold text-brand-700 dark:text-brand-300">
{initials}
</span>
</div>
<div className="min-w-0 flex-1">
<div className="font-medium text-sm text-gray-900 dark:text-gray-100 truncate">{name}</div>
<div className="font-medium text-sm text-gray-900 dark:text-gray-100 truncate">
{name}
</div>
<div className="text-xs text-gray-500 dark:text-gray-400">{eid}</div>
</div>
</div>