37 lines
860 B
TypeScript
37 lines
860 B
TypeScript
|
|
import { clsx, type ClassValue } from 'clsx';
|
|
import { twMerge } from 'tailwind-merge';
|
|
|
|
export function cn(...inputs: ClassValue[]) {
|
|
return twMerge(clsx(inputs));
|
|
}
|
|
|
|
export function formatPrice(price: any): string {
|
|
const num = Number(price);
|
|
if (isNaN(num)) return '';
|
|
return new Intl.NumberFormat('en-US', {
|
|
style: 'currency',
|
|
currency: 'USD',
|
|
maximumFractionDigits: 0
|
|
}).format(num);
|
|
}
|
|
|
|
export function formatMileage(mileage: any): string {
|
|
const num = Number(mileage);
|
|
if (isNaN(num)) return '';
|
|
return new Intl.NumberFormat('en-US').format(num) + ' miles';
|
|
}
|
|
|
|
export function formatDate(dateString: any): string {
|
|
if (!dateString) return '';
|
|
try {
|
|
return new Date(dateString).toLocaleDateString('en-US', {
|
|
month: 'long',
|
|
day: 'numeric',
|
|
year: 'numeric'
|
|
});
|
|
} catch (e) {
|
|
return '';
|
|
}
|
|
}
|