Empty state

This commit is contained in:
Sebastien Castiel
2023-12-06 12:50:46 -05:00
parent c72311d01a
commit 0bc3e0eedd
2 changed files with 59 additions and 54 deletions

View File

@@ -49,62 +49,67 @@ export default async function GroupPage({
</Button>
</CardHeader>
</div>
<CardContent className="p-0">
<Table className="">
<TableHeader>
<TableRow>
<TableHead>Title</TableHead>
<TableHead>Paid by</TableHead>
<TableHead>Paid for</TableHead>
<TableHead className="text-right">Amount</TableHead>
<TableHead className="w-0"></TableHead>
</TableRow>
</TableHeader>
<TableBody>
{expenses.map((expense) => (
<TableRow key={expense.id}>
<TableCell>{expense.title}</TableCell>
<TableCell>
<Badge variant="secondary">
{
group.participants.find(
(p) => p.id === expense.paidById,
)?.name
}
</Badge>
</TableCell>
<TableCell className="flex flex-wrap gap-1">
{expense.paidFor.map((paidFor, index) => (
<Badge variant="secondary" key={index}>
{expenses.length > 0 ? (
<Table className="">
<TableHeader>
<TableRow>
<TableHead>Title</TableHead>
<TableHead>Paid by</TableHead>
<TableHead>Paid for</TableHead>
<TableHead className="text-right">Amount</TableHead>
<TableHead className="w-0"></TableHead>
</TableRow>
</TableHeader>
<TableBody>
{expenses.map((expense) => (
<TableRow key={expense.id}>
<TableCell>{expense.title}</TableCell>
<TableCell>
<Badge variant="secondary">
{
group.participants.find(
(p) => p.id === paidFor.participantId,
(p) => p.id === expense.paidById,
)?.name
}
</Badge>
))}
</TableCell>
<TableCell className="text-right tabular-nums">
$ {expense.amount.toFixed(2)}
</TableCell>
<TableCell>
<Button
size="icon"
variant="link"
className="-my-2"
asChild
>
<Link
href={`/groups/${groupId}/expenses/${expense.id}/edit`}
</TableCell>
<TableCell className="flex flex-wrap gap-1">
{expense.paidFor.map((paidFor, index) => (
<Badge variant="secondary" key={index}>
{
group.participants.find(
(p) => p.id === paidFor.participantId,
)?.name
}
</Badge>
))}
</TableCell>
<TableCell className="text-right tabular-nums">
$&nbsp;{expense.amount.toFixed(2)}
</TableCell>
<TableCell>
<Button
size="icon"
variant="link"
className="-my-2"
asChild
>
<ChevronRight className="w-4 h-4" />
</Link>
</Button>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
<Link
href={`/groups/${groupId}/expenses/${expense.id}/edit`}
>
<ChevronRight className="w-4 h-4" />
</Link>
</Button>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
) : (
<div className="p-6">Your group doesnt have any expense yet.</div>
)}
</CardContent>
</Card>

View File

@@ -56,12 +56,12 @@ export function ExpenseForm({ group, expense, onSubmit }: Props) {
<CardHeader>
<CardTitle>Expense information</CardTitle>
</CardHeader>
<CardContent className="grid grid-cols-2 gap-6">
<CardContent className="grid grid-cols-1 sm:grid-cols-2 gap-6">
<FormField
control={form.control}
name="title"
render={({ field }) => (
<FormItem>
<FormItem className="order-1">
<FormLabel>Expense title</FormLabel>
<FormControl>
<Input placeholder="Monday evening restaurant" {...field} />
@@ -78,7 +78,7 @@ export function ExpenseForm({ group, expense, onSubmit }: Props) {
control={form.control}
name="paidBy"
render={({ field }) => (
<FormItem>
<FormItem className="order-3 sm:order-2">
<FormLabel>Paid by</FormLabel>
<Select
onValueChange={field.onChange}
@@ -107,7 +107,7 @@ export function ExpenseForm({ group, expense, onSubmit }: Props) {
control={form.control}
name="amount"
render={({ field }) => (
<FormItem>
<FormItem className="order-2 sm:order-3">
<FormLabel>Amount</FormLabel>
<FormControl>
<Input
@@ -128,7 +128,7 @@ export function ExpenseForm({ group, expense, onSubmit }: Props) {
control={form.control}
name="paidFor"
render={() => (
<FormItem>
<FormItem className="order-4">
<div className="mb-4">
<FormLabel>Paid for</FormLabel>
<FormDescription>