Vedant Sanjay Jadhav
fix: resolve TypeError in number formatting and add interactive SLM Co-Pilot chat drawer
5af7440
Raw
History Blame Contribute Delete
876 Bytes
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
export function safeNumber(val: any, fallback: number = 0): number {
if (val === undefined || val === null || isNaN(Number(val))) return fallback;
return Number(val);
}
export function formatCurrency(amount: number | undefined | null): string {
const num = safeNumber(amount, 0);
return new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
}).format(num);
}
export function formatPercent(value: number | undefined | null): string {
const num = safeNumber(value, 0);
return `${(num * 100).toFixed(1)}%`;
}
export function formatFixed(value: number | undefined | null, digits: number = 2): string {
const num = safeNumber(value, 0);
return num.toFixed(digits);
}