Spaces:
Running on Zero
Running on Zero
Vedant Sanjay Jadhav
fix: resolve TypeError in number formatting and add interactive SLM Co-Pilot chat drawer
5af7440 | 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); | |
| } | |