update the copies

This commit is contained in:
2026-01-26 20:32:06 -03:00
parent b3ac31d006
commit 6574c6b5e6
4 changed files with 46 additions and 14 deletions

View File

@@ -9,7 +9,7 @@ import {
WalletIcon WalletIcon
} from 'lucide-react' } from 'lucide-react'
import { use, useEffect, useState } from 'react' import { use, useEffect, useState } from 'react'
import { Link, redirect, useFetcher } from 'react-router' import { Link, NavLink, redirect, useFetcher } from 'react-router'
import { cloudflareContext, userContext } from '@repo/auth/context' import { cloudflareContext, userContext } from '@repo/auth/context'
import { Skeleton } from '@repo/ui/components/skeleton' import { Skeleton } from '@repo/ui/components/skeleton'
@@ -53,6 +53,7 @@ import { Bulk } from './bulk'
import { Payment } from './payment' import { Payment } from './payment'
import { Review } from './review' import { Review } from './review'
import { useWizardStore } from './store' import { useWizardStore } from './store'
import { Spinner } from '@repo/ui/components/ui/spinner'
export function meta({}: Route.MetaArgs) { export function meta({}: Route.MetaArgs) {
return [{ title: 'Comprar matrículas' }] return [{ title: 'Comprar matrículas' }]
@@ -166,7 +167,10 @@ export default function Route({
variant="outline" variant="outline"
className="bg-green-500/15 border-green-600/60 rounded-2xl" className="bg-green-500/15 border-green-600/60 rounded-2xl"
> >
<ItemMedia variant="icon"> <ItemMedia
className="bg-green-500/30 border-green-600/50"
variant="icon"
>
<MegaphoneIcon /> <MegaphoneIcon />
</ItemMedia> </ItemMedia>
<ItemContent> <ItemContent>
@@ -178,9 +182,11 @@ export default function Route({
</ItemContent> </ItemContent>
<ItemActions> <ItemActions>
<Button size="sm" variant="outline" asChild> <Button size="sm" variant="outline" asChild>
<Link to="../enrollments/seats"> <NavLink to="../enrollments/seats">
<PlusIcon /> Matricular {({ isPending }) => (
</Link> <>{isPending ? <Spinner /> : <PlusIcon />} Matricular</>
)}
</NavLink>
</Button> </Button>
</ItemActions> </ItemActions>
</Item> </Item>

View File

@@ -10,8 +10,19 @@ import {
BreadcrumbPage, BreadcrumbPage,
BreadcrumbSeparator BreadcrumbSeparator
} from '@repo/ui/components/ui/breadcrumb' } from '@repo/ui/components/ui/breadcrumb'
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle
} from '@repo/ui/components/ui/card'
import { request as req } from '@repo/util/request' import { request as req } from '@repo/util/request'
export function meta({}: Route.MetaArgs) {
return [{ title: 'Adicionar matrícula' }]
}
export async function loader({ request, params, context }: Route.LoaderArgs) { export async function loader({ request, params, context }: Route.LoaderArgs) {
const seats = await req({ const seats = await req({
url: `/orgs/${params.orgid}/seats`, url: `/orgs/${params.orgid}/seats`,
@@ -39,6 +50,17 @@ export default function Route({ loaderData: { seats } }: Route.ComponentProps) {
</BreadcrumbItem> </BreadcrumbItem>
</BreadcrumbList> </BreadcrumbList>
</Breadcrumb> </Breadcrumb>
<Card className="lg:max-w-4xl mx-auto">
<CardHeader>
<CardTitle className="text-2xl">Adicionar matrículas</CardTitle>
<CardDescription>
Siga os passos abaixo para adicionar colaboradores às matrículas
abertas.
</CardDescription>
</CardHeader>
<CardContent>...</CardContent>
</Card>
</div> </div>
) )
} }

View File

@@ -34,6 +34,7 @@ import {
PopoverContent, PopoverContent,
PopoverTrigger PopoverTrigger
} from '@repo/ui/components/ui/popover' } from '@repo/ui/components/ui/popover'
import { Spinner } from '@repo/ui/components/ui/spinner'
import { import {
Table, Table,
TableBody, TableBody,
@@ -43,7 +44,7 @@ import {
TableRow TableRow
} from '@repo/ui/components/ui/table' } from '@repo/ui/components/ui/table'
import { cn, initials } from '@repo/ui/lib/utils' import { cn, initials } from '@repo/ui/lib/utils'
import { Link } from 'react-router' import { NavLink } from 'react-router'
import type { Enrollment, Seat } from './route' import type { Enrollment, Seat } from './route'
const dtOptions: Intl.DateTimeFormatOptions = { const dtOptions: Intl.DateTimeFormatOptions = {
@@ -63,8 +64,8 @@ export function Enrollments({
<CardHeader> <CardHeader>
<CardTitle className="text-xl">Matrículas relacionadas</CardTitle> <CardTitle className="text-xl">Matrículas relacionadas</CardTitle>
<CardDescription> <CardDescription>
Acompanhe os detalhes de todas as matrículas relacionadas a esta Acompanhe os detalhes de todas as matrículas efetuadas relacionadas a
compra. esta compra.
</CardDescription> </CardDescription>
<CardAction> <CardAction>
@@ -250,7 +251,8 @@ function SeatsMenu({ seats: seats_ }: { seats: Seat[] }) {
<div className="space-y-2"> <div className="space-y-2">
<h4 className="leading-none font-medium">Matrículas abertas</h4> <h4 className="leading-none font-medium">Matrículas abertas</h4>
<p className="text-muted-foreground text-sm"> <p className="text-muted-foreground text-sm">
Matrículas que estão abertas e relacionadas a esta compra. Matrículas permanecem abertas devido à ausência de
colaborador.
</p> </p>
</div> </div>
@@ -268,14 +270,16 @@ function SeatsMenu({ seats: seats_ }: { seats: Seat[] }) {
</div> </div>
<Button size="sm" variant="outline" asChild> <Button size="sm" variant="outline" asChild>
<Link to="../enrollments/seats"> <NavLink to="../enrollments/seats">
<PlusIcon /> Matricular {({ isPending }) => (
</Link> <>{isPending ? <Spinner /> : <PlusIcon />} Matricular</>
)}
</NavLink>
</Button> </Button>
</> </>
) : ( ) : (
<p className="text-sm text-muted-foreground"> <p className="text-sm text-muted-foreground">
Nenhuma matrícula aberta foi encontrada para esta compra. Não matrículas abertas pertencentes a esta compra.
</p> </p>
)} )}
</div> </div>