{formatUsd(displayUsd)}
{serviceLabel(line.serviceLevel)}
i{line.carrier}
{transitLabel(line.transitDays)}
{P1_RESULT_UI.expiration}:{formatDisplayDate(line.expirationDate)}
{P1_RESULT_UI.delivery}:{formatDisplayDate(line.deliveryDate)}
"use client";
import { P1_RESULT_UI } from "@/lib/priority1/ui-labels";
import type { Priority1DisplayLine } from "@/modules/priority1/quote-storage";
type Props = {
lines: Priority1DisplayLine[];
};
function carrierInitials(carrier: string): string {
const parts = carrier.trim().split(/\s+/).filter(Boolean);
if (parts.length >= 2) {
return (parts[0]![0]! + parts[1]![0]!).toUpperCase();
}
return carrier.slice(0, 2).toUpperCase();
}
function formatUsd(n: number): string {
return new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
minimumFractionDigits: 2,
}).format(n);
}
function formatDisplayDate(raw?: string | null): string {
if (!raw) return P1_RESULT_UI.dateUnknown;
const trimmed = raw.trim();
const dash = trimmed.match(/^(\d{2})-(\d{2})-(\d{4})$/);
if (dash) return `${dash[1]}-${dash[2]}-${dash[3]}`;
const slash = trimmed.match(/^(\d{2})\/(\d{2})\/(\d{4})$/);
if (slash) return `${slash[1]}-${slash[2]}-${slash[3]}`;
const iso = trimmed.match(/^(\d{4})-(\d{2})-(\d{2})/);
if (iso) return `${iso[2]}-${iso[3]}-${iso[1]}`;
return trimmed;
}
function transitLabel(days?: number): string {
if (days == null || days <= 0) return P1_RESULT_UI.transitUnknown;
return P1_RESULT_UI.transit(days);
}
function serviceLabel(level?: string): string {
if (!level?.trim()) return P1_RESULT_UI.standardLtl;
if (/standard\s*ltl/i.test(level)) return P1_RESULT_UI.standardLtl;
return level;
}
function QuoteCard({ line }: { line: Priority1DisplayLine }) {
const displayUsd = line.totalUsd > 0 ? line.totalUsd : line.final_total_usd;
return (
{formatUsd(displayUsd)}
{line.carrier} {transitLabel(line.transitDays)}
{P1_RESULT_UI.expiration}:{formatDisplayDate(line.expirationDate)}
{P1_RESULT_UI.delivery}:{formatDisplayDate(line.deliveryDate)}
{serviceLabel(line.serviceLevel)}
i