traeon/frontend/src/components/ParcelCard.jsx

41 lines
1.3 KiB
React
Raw Normal View History

import { useNavigate } from "react-router-dom";
import dayjs from "dayjs";
import StatusBadge from "./StatusBadge";
import CarrierBadge from "./CarrierBadge";
function ParcelCard({ parcel }) {
const navigate = useNavigate();
return (
<div
onClick={() => navigate(`/parcel/${parcel.id}`)}
className="bg-white rounded-xl shadow-sm cursor-pointer hover:shadow-md transition-shadow flex items-center gap-3 lg:gap-4 p-3.5 lg:p-4"
>
<CarrierBadge carrierId={parcel.carrierId} />
<div className="flex-1 min-w-0 space-y-1.5 lg:space-y-2">
<div className="flex items-center gap-1.5 text-xs lg:text-sm text-gray-400">
<span>{parcel.carrierName}</span>
<span>|</span>
<span className="tracking-letter-spacing">
{parcel.trackingNumber}
</span>
</div>
<p className="font-semibold text-sm lg:text-base text-gray-900 truncate">
{parcel.label || parcel.trackingNumber}
</p>
<div className="flex items-center justify-between">
<span className="text-xs lg:text-sm text-gray-400">
{dayjs(parcel.createdAt).format("YYYY.MM.DD")}
</span>
<StatusBadge status={parcel.status} />
</div>
</div>
</div>
);
}
export default ParcelCard;