add rybbit

This commit is contained in:
2025-12-20 22:23:35 -03:00
parent f0307d4603
commit 43e6973f88
17 changed files with 269 additions and 115 deletions

View File

@@ -208,102 +208,100 @@ function List({ items, search }) {
}
return (
<div className="border rounded-lg overflow-hidden">
<Table className="table-auto w-full">
{charges.length ? (
<>
<TableHeader>
<TableRow className="bg-muted-foreground/10 pointer-events-none">
<TableHead>Colaborador</TableHead>
<TableHead>Curso</TableHead>
<TableHead>Matriculado por</TableHead>
<TableHead>Matriculado em</TableHead>
<TableHead>Valor unit.</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{charges?.map(
(
{ user, course, author: created_by, unit_price, enrolled_at },
index
) => (
<TableRow key={index}>
<TableCell>
<Abbr>{user.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{course.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{created_by ? created_by.name : 'N/A'}</Abbr>
</TableCell>
<TableCell>
<DateTime>{enrolled_at}</DateTime>
</TableCell>
<TableCell>
<Currency>{unit_price}</Currency>
</TableCell>
</TableRow>
)
)}
</TableBody>
</>
) : null}
<Table className="table-auto w-full">
{charges.length ? (
<>
<TableHeader>
<TableRow className="bg-muted-foreground/10 pointer-events-none">
<TableHead>Colaborador</TableHead>
<TableHead>Curso</TableHead>
<TableHead>Matriculado por</TableHead>
<TableHead>Matriculado em</TableHead>
<TableHead>Valor unit.</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{charges?.map(
(
{ user, course, author: created_by, unit_price, enrolled_at },
index
) => (
<TableRow key={index}>
<TableCell>
<Abbr>{user.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{course.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{created_by ? created_by.name : 'N/A'}</Abbr>
</TableCell>
<TableCell>
<DateTime>{enrolled_at}</DateTime>
</TableCell>
<TableCell>
<Currency>{unit_price}</Currency>
</TableCell>
</TableRow>
)
)}
</TableBody>
</>
) : null}
{credits.length ? (
<>
<TableHeader>
<TableRow className="bg-muted-foreground/10 pointer-events-none border-t">
<TableHead colSpan={2}></TableHead>
<TableHead>Cancelado por</TableHead>
<TableHead colSpan={2}>Cancelado em</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{credits?.map(
(
{ user, course, author: canceled_by, unit_price, created_at },
index
) => (
<TableRow key={index}>
<TableCell>
<Abbr>{user.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{course.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{canceled_by ? canceled_by.name : 'N/A'}</Abbr>
</TableCell>
<TableCell>
<DateTime>{created_at}</DateTime>
</TableCell>
<TableCell>
<Currency>{unit_price}</Currency>
</TableCell>
</TableRow>
)
)}
</TableBody>
</>
) : null}
{credits.length ? (
<>
<TableHeader>
<TableRow className="bg-muted-foreground/10 pointer-events-none border-t">
<TableHead colSpan={2}></TableHead>
<TableHead>Cancelado por</TableHead>
<TableHead colSpan={2}>Cancelado em</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{credits?.map(
(
{ user, course, author: canceled_by, unit_price, created_at },
index
) => (
<TableRow key={index}>
<TableCell>
<Abbr>{user.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{course.name}</Abbr>
</TableCell>
<TableCell>
<Abbr>{canceled_by ? canceled_by.name : 'N/A'}</Abbr>
</TableCell>
<TableCell>
<DateTime>{created_at}</DateTime>
</TableCell>
<TableCell>
<Currency>{unit_price}</Currency>
</TableCell>
</TableRow>
)
)}
</TableBody>
</>
) : null}
<TableFooter>
<TableRow>
<TableCell colSpan={4} className="text-right pointer-events-none">
Total
</TableCell>
<TableCell>
<Currency>
{filtered
?.filter((x) => 'course' in x)
?.reduce((acc, { unit_price }) => acc + unit_price, 0)}
</Currency>
</TableCell>
</TableRow>
</TableFooter>
</Table>
</div>
<TableFooter>
<TableRow>
<TableCell colSpan={4} className="text-right pointer-events-none">
Total
</TableCell>
<TableCell>
<Currency>
{filtered
?.filter((x) => 'course' in x)
?.reduce((acc, { unit_price }) => acc + unit_price, 0)}
</Currency>
</TableCell>
</TableRow>
</TableFooter>
</Table>
)
}