diff --git a/src/app/groups/[groupId]/balances-list.tsx b/src/app/groups/[groupId]/balances-list.tsx index 5e7b81b..b795914 100644 --- a/src/app/groups/[groupId]/balances-list.tsx +++ b/src/app/groups/[groupId]/balances-list.tsx @@ -1,5 +1,5 @@ import { Balances } from '@/lib/balances' -import { cn } from '@/lib/utils' +import { cn, formatCurrency } from '@/lib/utils' import { Participant } from '@prisma/client' type Props = { @@ -28,7 +28,7 @@ export function BalancesList({ balances, participants, currency }: Props) {
- {currency} {(balance / 100).toFixed(2)} + {formatCurrency(currency, balance)}
{balance !== 0 && (
{receiptInfo ? ( receiptInfo.amount ? ( - <> - {groupCurrency} {receiptInfo.amount.toFixed(2)} - + <>{formatCurrency(groupCurrency, receiptInfo.amount)} ) : ( ) diff --git a/src/app/groups/[groupId]/expenses/expense-list.tsx b/src/app/groups/[groupId]/expenses/expense-list.tsx index a97c2bd..cc908af 100644 --- a/src/app/groups/[groupId]/expenses/expense-list.tsx +++ b/src/app/groups/[groupId]/expenses/expense-list.tsx @@ -3,7 +3,7 @@ import { CategoryIcon } from '@/app/groups/[groupId]/expenses/category-icon' import { Button } from '@/components/ui/button' import { SearchBar } from '@/components/ui/search-bar' import { getGroupExpenses } from '@/lib/api' -import { cn, formatExpenseDate } from '@/lib/utils' +import { cn, formatCurrency, formatExpenseDate } from '@/lib/utils' import { Expense, Participant } from '@prisma/client' import dayjs, { type Dayjs } from 'dayjs' import { ChevronRight } from 'lucide-react' @@ -156,7 +156,7 @@ export function ExpenseList({ expense.isReimbursement ? 'italic' : 'font-bold', )} > - {currency} {(expense.amount / 100).toFixed(2)} + {formatCurrency(currency, expense.amount)}
{formatExpenseDate(expense.expenseDate)} diff --git a/src/app/groups/[groupId]/reimbursement-list.tsx b/src/app/groups/[groupId]/reimbursement-list.tsx index 54ee9d7..8031aa5 100644 --- a/src/app/groups/[groupId]/reimbursement-list.tsx +++ b/src/app/groups/[groupId]/reimbursement-list.tsx @@ -1,5 +1,6 @@ import { Button } from '@/components/ui/button' import { Reimbursement } from '@/lib/balances' +import { formatCurrency } from '@/lib/utils' import { Participant } from '@prisma/client' import Link from 'next/link' @@ -42,9 +43,7 @@ export function ReimbursementList({
-
- {currency} {(reimbursement.amount / 100).toFixed(2)} -
+
{formatCurrency(currency, reimbursement.amount)}
))} diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 39477d1..2ce486c 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -20,3 +20,12 @@ export function formatExpenseDate(date: Date) { export function formatCategoryForAIPrompt(category: Category) { return `"${category.grouping}/${category.name}" (ID: ${category.id})` } + +export function formatCurrency(currency: string, amount: number) { + const format = new Intl.NumberFormat('en-US', { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }) + const formattedAmount = format.format(amount / 100) + return `${currency} ${formattedAmount}` +}