tracking-summary.tsx1.4 KBView on GitHub import { Eye, MousePointerClick } from 'lucide-react';
interface TrackingSummaryProps {
trackingData: {
trackingId: string;
openCount: number;
clickCount: number;
firstOpenedAt: Date | null;
lastOpenedAt: Date | null;
firstClickedAt: Date | null;
openTrackingEnabled: boolean;
linkTrackingEnabled: boolean;
};
}
/**
* Compact inline tracking summary for CRM conversation timeline.
* Shows open and click counts inline with event title.
*/
export function TrackingSummary({ trackingData }: TrackingSummaryProps) {
const { openCount, clickCount, openTrackingEnabled, linkTrackingEnabled } = trackingData;
// Don't show if tracking is disabled
if (!openTrackingEnabled && !linkTrackingEnabled) {
return null;
}
// Don't show if no activity
const hasActivity = openCount > 0 || clickCount > 0;
if (!hasActivity) {
return null;
}
return (
<span className="text-xs text-muted-foreground inline-flex items-center gap-2 ml-2">
{openTrackingEnabled && openCount > 0 && (
<span className="inline-flex items-center gap-1">
<Eye className="h-3 w-3" />
<span>{openCount}</span>
</span>
)}
{linkTrackingEnabled && clickCount > 0 && (
<span className="inline-flex items-center gap-1">
<MousePointerClick className="h-3 w-3" />
<span>{clickCount}</span>
</span>
)}
</span>
);
}