From 63c6344821eb12cdeac75bf73c23de905c47a488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Mon, 26 Jan 2026 17:28:11 -0300 Subject: [PATCH] add alertt --- .../_.$orgid.enrollments.$id._index/route.tsx | 52 ------------------- .../routes/_.$orgid.enrollments.buy/route.tsx | 45 +++++++++++++--- .../_.$orgid.enrollments.seats/route.tsx | 32 ++++++++++++ .../app/routes/_.$orgid.scheduled/route.tsx | 1 - 4 files changed, 71 insertions(+), 59 deletions(-) delete mode 100644 apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.$id._index/route.tsx create mode 100644 apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.$id._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.$id._index/route.tsx deleted file mode 100644 index 82261ad..0000000 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.$id._index/route.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import type { Route } from './+types/route' - -import { useNavigate } from 'react-router' - -import { - Dialog, - DialogContent, - DialogDescription, - DialogHeader, - DialogTitle -} from '@repo/ui/components/ui/dialog' -import { request as req } from '@repo/util/request' - -export async function loader({ params, request, context }: Route.LoaderArgs) { - const r = await req({ - url: `/enrollments/${params.id}`, - request, - context - }) - - if (!r.ok) { - throw new Response(null, { status: r.status }) - } - - const enrollment = await r.json() - return { data: enrollment } -} - -export default function UserModal({}: Route.ComponentProps) { - const navigate = useNavigate() - - return ( - { - if (!open) navigate('/enrollments') // Volta pra listagem ao fechar - }} - > - - - ... - Detalhes do usuário - - -
- ... - {/* Mais informações... */} -
-
-
- ) -} diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.buy/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.buy/route.tsx index 522266a..a3f5290 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.buy/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.buy/route.tsx @@ -1,7 +1,12 @@ import type { Route } from './+types/route' import { useMount } from 'ahooks' -import { BookSearchIcon, CircleCheckBigIcon, WalletIcon } from 'lucide-react' +import { + BookSearchIcon, + CircleCheckBigIcon, + MegaphoneIcon, + WalletIcon +} from 'lucide-react' import { use, useEffect, useState } from 'react' import { Link, redirect, useFetcher } from 'react-router' @@ -22,6 +27,14 @@ import { CardHeader, CardTitle } from '@repo/ui/components/ui/card' +import { + Item, + ItemActions, + ItemContent, + ItemDescription, + ItemMedia, + ItemTitle +} from '@repo/ui/components/ui/item' import { Label } from '@repo/ui/components/ui/label' import { Switch } from '@repo/ui/components/ui/switch' import { createSearch } from '@repo/util/meili' @@ -32,6 +45,7 @@ import { Wizard, WizardStep } from '@/components/wizard' import { useWorksapce } from '@/components/workspace-switcher' import { INTERNAL_EMAIL_DOMAIN } from '@/conf' import { workspaceContext } from '@/middleware/workspace' +import { Button } from '@repo/ui/components/ui/button' import type { Course } from '../_.$orgid.enrollments.add/data' import { Assigned } from './assigned' import { Bulk } from './bulk' @@ -96,16 +110,13 @@ export async function action({ request, context }: Route.ActionArgs) { export default function Route({ loaderData: { courses, seats: seats_ } }: Route.ComponentProps) { + const seats = use(seats_) const fetcher = useFetcher() const [mounted, setMounted] = useState(false) const { address } = useWorksapce() const { index, kind, setIndex, setKind, reset, update, ...state } = useWizardStore() - // @TODO - const seats = use(seats_) - console.log(seats) - const onSubmit = async () => { const items = state.items.map(({ course, quantity }) => ({ ...course, @@ -148,7 +159,29 @@ export default function Route({ -
+
+ {seats?.items?.length > 0 && ( + + + + + + Matrículas em aberto + + Existem matrículas em aberto de cursos já adquiridos e + disponíveis para uso. + + + + + + + )} Comprar matrículas diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx new file mode 100644 index 0000000..797148c --- /dev/null +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.enrollments.seats/route.tsx @@ -0,0 +1,32 @@ +import type { Route } from './+types/route' + +import { Link } from 'react-router' + +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbList, + BreadcrumbPage, + BreadcrumbSeparator +} from '@repo/ui/components/ui/breadcrumb' + +export default function Route({}: Route.ComponentProps) { + return ( +
+ + + + + Matrículas + + + + + Adicionar matrículas + + + +
+ ) +} diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx index 7dd32c3..3c75007 100644 --- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx +++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.scheduled/route.tsx @@ -41,7 +41,6 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, - DropdownMenuSeparator, DropdownMenuTrigger } from '@repo/ui/components/ui/dropdown-menu' import {