diff --git a/.dockerignore b/.dockerignore index 6daa78e..b0becca 100644 --- a/.dockerignore +++ b/.dockerignore @@ -15,8 +15,8 @@ dist/ downloads/ eggs/ .eggs/ -lib/ -lib64/ +/lib/ +/lib64/ parts/ sdist/ var/ diff --git a/.gitignore b/.gitignore index 97aafdd..4bab920 100644 --- a/.gitignore +++ b/.gitignore @@ -154,8 +154,8 @@ dist/ downloads/ eggs/ .eggs/ -lib/ -lib64/ +/lib/ +/lib64/ parts/ sdist/ var/ diff --git a/web/src/lib/utils.ts b/web/src/lib/utils.ts new file mode 100644 index 0000000..7ed3555 --- /dev/null +++ b/web/src/lib/utils.ts @@ -0,0 +1,33 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} + +export function formatCurrencyILS(amount: number | null | undefined): string { + if (amount == null || isNaN(amount)) return "—"; + return new Intl.NumberFormat("he-IL", { + style: "currency", + currency: "ILS", + maximumFractionDigits: 0, + }).format(amount); +} + +export function formatDate(iso: string | null | undefined): string { + if (!iso) return "—"; + try { + return new Date(iso).toLocaleDateString("he-IL", { + year: "numeric", + month: "2-digit", + day: "2-digit", + }); + } catch { + return iso; + } +} + +export function formatNumber(n: number | null | undefined): string { + if (n == null || isNaN(n)) return "—"; + return new Intl.NumberFormat("he-IL").format(n); +}