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}`
+}