Skip to content

Commit

Permalink
refactor: expense detail
Browse files Browse the repository at this point in the history
  • Loading branch information
kdurek committed Apr 10, 2024
1 parent 7fa87ff commit 7a51489
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 70 deletions.
4 changes: 2 additions & 2 deletions src/components/expense/expense-debts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ interface ExpensePayerCardProps {

export function ExpensePayerCard({ name, amount }: ExpensePayerCardProps) {
return (
<div className="flex items-center justify-between gap-4 py-4">
<div className="flex items-center justify-between gap-4">
<div className="flex items-center gap-4 overflow-hidden">
<div className="overflow-hidden text-start">
<div className="line-clamp-1 text-xs font-medium uppercase text-muted-foreground">Zapłacone przez</div>
Expand Down Expand Up @@ -45,7 +45,7 @@ export function ExpenseDebtorCard({ debtId, name, amount, settled, canSettle }:
const statusIcon = isFullySettled ? <XSquare size={40} strokeWidth={1} /> : <Square size={40} strokeWidth={1} />;

return (
<div className="flex items-center justify-between gap-4 overflow-hidden py-4">
<div className="flex items-center justify-between gap-4 overflow-hidden">
<div className="flex items-center gap-4 overflow-hidden">
<ExpenseDebtSettleModal debtId={debtId} amount={amount} settled={settled}>
<Button
Expand Down
13 changes: 0 additions & 13 deletions src/components/expense/expense-description-card.tsx

This file was deleted.

86 changes: 31 additions & 55 deletions src/components/expense/expense-detail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ import Link from 'next/link';
import { DebtRevertButton } from '@/components/debt/debt-revert-button';
import { ExpenseDebtorCard, ExpensePayerCard } from '@/components/expense/expense-debts';
import { ExpenseDeleteModal } from '@/components/expense/expense-delete-modal';
import { ExpenseDescriptionCard } from '@/components/expense/expense-description-card';
import { ExpenseNoteCard } from '@/components/expense/expense-note-card';
import { ExpenseNoteForm } from '@/components/expense/expense-note-form';
import { buttonVariants } from '@/components/ui/button';
import { Heading } from '@/components/ui/heading';
import { cn } from '@/lib/utils';
Expand All @@ -27,15 +24,20 @@ export function ExpenseDetail({ expense, user }: ExpenseDetailProps) {
const isAdmin = user.id === expense.group.adminId;

return (
<div className="space-y-6">
<div className="space-y-2">
<div className="divide-y">
<div className="pb-4">
<Heading variant="h1">{expense.name}</Heading>
<ExpenseDescriptionCard description={expense.description} />
<div>{formattedDate}</div>
<div className="text-sm text-muted-foreground">{formattedDate}</div>
{expense.description && (
<div className="mt-4 whitespace-pre-wrap text-muted-foreground">{expense.description}</div>
)}
</div>

<div className="divide-y">
<div className="py-4">
<ExpensePayerCard name={expense.payer.name} amount={Number(expense.amount)} />
</div>

<div className="flex flex-col gap-4 py-4">
{expense.debts.map((debt) => (
<ExpenseDebtorCard
key={debt.id}
Expand All @@ -49,58 +51,32 @@ export function ExpenseDetail({ expense, user }: ExpenseDetailProps) {
</div>

{logs.length !== 0 && (
<div className="space-y-2">
<Heading variant="h2">Historia</Heading>
<div className="divide-y">
{logs.map((log) => (
<div key={log.id} className="py-4">
<div className="flex justify-between gap-4">
<div className="text-start text-sm text-muted-foreground">
<div>{log.debt.debtor.name}</div>
<div>{format(log.createdAt, 'HH:mm dd.MM.yyyy')}</div>
</div>
<div className="flex items-center gap-4">
<div>{Number(log.amount).toFixed(2)}</div>
<DebtRevertButton id={log.id} />
</div>
</div>
<div
className={cn('flex flex-col gap-4 pt-4', {
'pb-4': isPayer || isAdmin,
})}
>
{logs.map((log) => (
<div key={log.id} className="flex justify-between gap-4">
<div className="text-start text-sm text-muted-foreground">
<div>{log.debt.debtor.name}</div>
<div>{format(log.createdAt, 'HH:mm dd.MM.yyyy')}</div>
</div>
<div className="flex items-center gap-4">
<div>{Number(log.amount).toFixed(2)}</div>
<DebtRevertButton id={log.id} />
</div>
))}
</div>
</div>
))}
</div>
)}

<div className="space-y-2">
<Heading variant="h2">Notatki</Heading>
<ExpenseNoteForm expenseId={expense.id} />
<div className="divide-y">
{expense.notes.length !== 0 ? (
expense.notes.map((note) => (
<ExpenseNoteCard
key={note.id}
content={note.content}
createdByName={note.createdBy?.name}
createdAt={note.createdAt}
/>
))
) : (
<div className="py-4">Nie dodano jeszcze żadnej notatki</div>
)}
</div>
</div>

{(isPayer || isAdmin) && (
<div className="space-y-2">
<Heading variant="h2">Ustawienia</Heading>
<div className="flex gap-2">
<Link
href={`/wydatki/${expense.id}/edytuj`}
className={cn(buttonVariants({ variant: 'outline' }), 'w-full')}
>
Edytuj
</Link>
<ExpenseDeleteModal expenseId={expense.id} />
</div>
<div className="flex gap-2 pt-4">
<Link href={`/wydatki/${expense.id}/edytuj`} className={cn(buttonVariants({ variant: 'outline' }), 'w-full')}>
Edytuj
</Link>
<ExpenseDeleteModal expenseId={expense.id} />
</div>
)}
</div>
Expand Down

0 comments on commit 7a51489

Please sign in to comment.