Reviewed-on: https://git.pelekan.org/Saeed0920/inogen/pulls/10 Co-authored-by: saeed0920 <sd.eed1381@gmail.com> Co-committed-by: saeed0920 <sd.eed1381@gmail.com>
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
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;
|
|
}
|