From 98c6fcb61921327ea76d6235666144cbc7a6c95a Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Wed, 11 Mar 2026 09:07:12 +0200 Subject: [PATCH] ui: compact registry numbers with company badge + direction icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace full "BTG-0042/2026" with compact [B] ↓ 0042/2026 format: - Colored company badge (B=blue, US=violet, SDT=green, G=gray) - Direction arrow icon (↓ green=intrat, ↑ orange=iesit, ↔ gray=intern) - Plain number without prefix Co-Authored-By: Claude Opus 4.6 --- .../components/registry-table.tsx | 55 +++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/src/modules/registratura/components/registry-table.tsx b/src/modules/registratura/components/registry-table.tsx index 2bba085..0d6a254 100644 --- a/src/modules/registratura/components/registry-table.tsx +++ b/src/modules/registratura/components/registry-table.tsx @@ -14,6 +14,9 @@ import { CheckCircle2, Copy, Check, + ArrowDownLeft, + ArrowUpRight, + ArrowLeftRight, } from "lucide-react"; import { Button } from "@/shared/components/ui/button"; import { Badge } from "@/shared/components/ui/badge"; @@ -313,11 +316,8 @@ export function RegistryTable({ onClick={() => onView(entry)} > {visibleCols.has("number") && ( - - - {entry.number} - - + + )} {visibleCols.has("date") && ( @@ -552,6 +552,51 @@ function CopyNumberButton({ entry }: { entry: RegistryEntry }) { ); } +// ── Company badge colors ── +const COMPANY_BADGE: Record = { + beletage: { label: "B", className: "bg-blue-600 text-white" }, + "urban-switch": { label: "US", className: "bg-violet-600 text-white" }, + "studii-de-teren": { label: "SDT", className: "bg-emerald-600 text-white" }, + group: { label: "G", className: "bg-zinc-500 text-white" }, +}; + +function CompactNumber({ entry }: { entry: RegistryEntry }) { + // Extract plain number with leading zeros: "BTG-0042/2026" → "0042/2026" + const plain = (entry.number ?? "").replace(/^[A-Z]+-/, ""); + const badge = COMPANY_BADGE[entry.company ?? ""] ?? { label: "B", className: "bg-blue-600 text-white" }; + + // Direction icon + const DirIcon = + entry.direction === "intrat" + ? ArrowDownLeft + : entry.direction === "iesit" + ? ArrowUpRight + : ArrowLeftRight; + const dirColor = + entry.direction === "intrat" + ? "text-green-600" + : entry.direction === "iesit" + ? "text-orange-500" + : "text-muted-foreground"; + + return ( + + + {badge.label} + + + {plain} + + + ); +} + function formatDate(iso: string): string { try { return new Date(iso).toLocaleDateString("ro-RO", {