import { ExternalIcon } from '../../icons'; import { parseDate, timeAgo, initials } from '../../../utils/format.utils'; import type { Ticket } from '../../../types/ticket.types'; import styles from './BoardCard.module.scss'; function daysSince(v: string | null): number | null { const d = parseDate(v); if (!d) return null; return Math.floor((Date.now() - d.getTime()) / 86_400_000); } interface BoardCardProps { ticket: Ticket; color: string; brandColor?: string; onSelect: (t: Ticket) => void; } export default function BoardCard({ ticket, color, brandColor, onSelect }: BoardCardProps) { const lifetime = daysSince(ticket.openedAt); const inState = daysSince(ticket.stateChangedAt); const bm = [ticket.brand, ticket.market].filter(Boolean).join(' · '); return (