From a6e7a9800238710de82f72cdf04362c8c028ef83 Mon Sep 17 00:00:00 2001 From: escaprt Date: Mon, 31 Aug 2026 11:46:28 +0100 Subject: [PATCH] chore(web): extract formatUsd into shared lib/format module --- apps/web/src/components/dashboard/DepositTab.tsx | 10 +--------- .../src/components/dashboard/PositionSummary.tsx | 10 +--------- apps/web/src/lib/format.ts | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 18 deletions(-) create mode 100644 apps/web/src/lib/format.ts diff --git a/apps/web/src/components/dashboard/DepositTab.tsx b/apps/web/src/components/dashboard/DepositTab.tsx index 6da1f0ed..22b57c00 100644 --- a/apps/web/src/components/dashboard/DepositTab.tsx +++ b/apps/web/src/components/dashboard/DepositTab.tsx @@ -1,15 +1,7 @@ import { useTranslation } from "react-i18next"; import { AmountInput } from "../ui/AmountInput"; import type { ApiPosition, ApiVault } from "../../lib/api"; - -function formatUsd(value: number, locale: string) { - return value.toLocaleString(locale === "fr" ? "fr-FR" : "en-US", { - style: "currency", - currency: "USD", - minimumFractionDigits: 2, - maximumFractionDigits: 2, - }); -} +import { formatUsd } from "../../lib/format"; interface DepositTabProps { amount: string; diff --git a/apps/web/src/components/dashboard/PositionSummary.tsx b/apps/web/src/components/dashboard/PositionSummary.tsx index 1bf8b4b0..2444c98a 100644 --- a/apps/web/src/components/dashboard/PositionSummary.tsx +++ b/apps/web/src/components/dashboard/PositionSummary.tsx @@ -1,14 +1,6 @@ import { useTranslation } from "react-i18next"; import type { ApiPosition } from "../../lib/api"; - -function formatUsd(value: number, locale: string) { - return value.toLocaleString(locale === "fr" ? "fr-FR" : "en-US", { - style: "currency", - currency: "USD", - minimumFractionDigits: 2, - maximumFractionDigits: 2, - }); -} +import { formatUsd } from "../../lib/format"; interface PositionSummaryProps { position: ApiPosition; diff --git a/apps/web/src/lib/format.ts b/apps/web/src/lib/format.ts new file mode 100644 index 00000000..5f530dfb --- /dev/null +++ b/apps/web/src/lib/format.ts @@ -0,0 +1,15 @@ +/** + * Formats a numeric USD value as a localised currency string. + * + * @param value - The numeric amount to format. + * @param locale - The i18n locale string (e.g. "en", "fr"). + * @returns A string such as "$1,234.56" or "1 234,56 $US". + */ +export function formatUsd(value: number, locale: string): string { + return value.toLocaleString(locale === "fr" ? "fr-FR" : "en-US", { + style: "currency", + currency: "USD", + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }); +}