import { type ClassValue, clsx } from "clsx"; import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } /** * Format a date as relative time (e.g., "2 minutes ago", "1 hour ago") */ export function formatRelativeTime(dateString: string): string { const date = new Date(dateString); const now = new Date(); const diffInMs = now.getTime() - date.getTime(); const diffInSeconds = Math.floor(diffInMs / 1000); if (diffInSeconds < 60) { return diffInSeconds <= 1 ? "just now" : `${diffInSeconds} seconds ago`; } const diffInMinutes = Math.floor(diffInSeconds / 60); if (diffInMinutes < 60) { return diffInMinutes === 1 ? "1 minute ago" : `${diffInMinutes} minutes ago`; } const diffInHours = Math.floor(diffInMinutes / 60); if (diffInHours < 24) { return diffInHours === 1 ? "1 hour ago" : `${diffInHours} hours ago`; } const diffInDays = Math.floor(diffInHours / 24); if (diffInDays < 30) { return diffInDays === 1 ? "1 day ago" : `${diffInDays} days ago`; } const diffInMonths = Math.floor(diffInDays / 30); if (diffInMonths < 12) { return diffInMonths === 1 ? "1 month ago" : `${diffInMonths} months ago`; } const diffInYears = Math.floor(diffInMonths / 12); return diffInYears === 1 ? "1 year ago" : `${diffInYears} years ago`; }