import { clsx, type ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; import moment from "moment-jalaali"; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } export const formatNumber = (value: string | number) => { // if (!value) return "0"; const numericValue = typeof value === "string" ? parseFloat(value) : value; if (isNaN(numericValue)) return "0"; return new Intl.NumberFormat("fa-IR").format(numericValue); }; export const formatCurrency = (amount: string | number) => { if (!amount) return "0 ریال"; // Remove commas and convert to number const numericAmount = typeof amount === "string" ? parseFloat(amount.replace(/,/g, "")) : amount; if (isNaN(numericAmount)) return "0 ریال"; return new Intl.NumberFormat("fa-IR").format(numericAmount) + " ریال"; }; export const handleDataValue = (val: any): any => { moment.loadPersian({ usePersianDigits: true }); if (val == null) return val; if ( typeof val === "string" && /^\d{4}[-/]\d{2}[-/]\d{2}( \d{2}:\d{2}(:\d{2})?)?$/.test(val) ) { return moment(val, "YYYY-MM-DD HH:mm:ss").format("YYYY/MM/DD"); } if ( typeof val === "number" || (typeof val === "string" && /^-?\d+$/.test(val)) ) { return val.toString().replace(/\d/g, (d) => "۰۱۲۳۴۵۶۷۸۹"[+d]); } return val; }