feat(expense-list): Display the attachment count only when the expense includes attachments (#267)

* feat(expense-list): Display the attachment count only when the expense includes attachments

* handle attachments - singular & plural

* move documents count between amount and date

* Remove label

* Use document count only instead of whole document list

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
This commit is contained in:
Yuvaraj Sai
2024-12-07 22:23:14 +05:30
committed by GitHub
parent 2c973f976f
commit 72ad0a4c90
3 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
import { Paperclip } from 'lucide-react'
export function DocumentsCount({ count }: { count: number }) {
if (count === 0) return <></>
return (
<div className="flex items-center">
<Paperclip className="w-3.5 h-3.5 mr-1 mt-0.5 text-muted-foreground" />
<span>{count}</span>
</div>
)
}

View File

@@ -1,6 +1,7 @@
'use client'
import { ActiveUserBalance } from '@/app/groups/[groupId]/expenses/active-user-balance'
import { CategoryIcon } from '@/app/groups/[groupId]/expenses/category-icon'
import { DocumentsCount } from '@/app/groups/[groupId]/expenses/documents-count'
import { Button } from '@/components/ui/button'
import { getGroupExpenses } from '@/lib/api'
import { cn, formatCurrency, formatDate } from '@/lib/utils'
@@ -75,6 +76,9 @@ export function ExpenseCard({ expense, currency, groupId }: Props) {
>
{formatCurrency(currency, expense.amount, locale)}
</div>
<div className="text-xs text-muted-foreground">
<DocumentsCount count={expense._count.documents} />
</div>
<div className="text-xs text-muted-foreground">
{formatDate(expense.expenseDate, locale, { dateStyle: 'medium' })}
</div>

View File

@@ -286,6 +286,7 @@ export async function getGroupExpenses(
},
splitMode: true,
title: true,
_count: { select: { documents: true } },
},
where: {
groupId,