import type { Route } from './+types/route' import { useFetcher } from 'react-router' import { Link } from 'react-router' import { useMount } from 'ahooks' import { BookSearchIcon, CircleCheckBigIcon, WalletIcon } from 'lucide-react' import { Card, CardContent, CardHeader, CardDescription, CardTitle } from '@repo/ui/components/ui/card' import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from '@repo/ui/components/ui/breadcrumb' import { Switch } from '@repo/ui/components/ui/switch' import { createSearch } from '@repo/util/meili' import { cloudflareContext } from '@repo/auth/context' import { Label } from '@repo/ui/components/ui/label' import { Skeleton } from '@repo/ui/components/skeleton' import { Step, StepItem, StepSeparator } from '@/components/step' import { Wizard, WizardStep } from '@/components/wizard' import type { Course } from '../_.$orgid.enrollments.add/data' import { Bulk } from './bulk' import { Payment } from './payment' import { Assigned } from './assigned' import { Review } from './review' import { useWizardStore } from './store' import { useEffect, useState } from 'react' import { useWorksapce } from '@/components/workspace-switcher' export function meta({}: Route.MetaArgs) { return [{ title: 'Comprar matrículas' }] } export async function loader({ context }: Route.LoaderArgs) { const cloudflare = context.get(cloudflareContext) const courses = createSearch({ index: 'saladeaula_courses', sort: ['created_at:desc'], filter: 'unlisted = false', hitsPerPage: 100, env: cloudflare.env }) return { courses } } export async function action({ request }: Route.ActionArgs) { const body = (await request.json()) as object console.log(body) } export default function Route({ loaderData: { courses } }: Route.ComponentProps) { const fetcher = useFetcher() const [mounted, setMounted] = useState(false) const { address } = useWorksapce() const { index, kind, setIndex, setKind, reset, update, ...state } = useWizardStore() const onSubmit = async () => { await fetcher.submit(JSON.stringify(state), { method: 'post', encType: 'application/json' }) // reset() } useMount(() => { setMounted(true) }) useEffect(() => { if (address) { update({ address }) } }, [address]) if (!mounted) { return } return (
Matrículas Comprar matrículas
Comprar matrículas Siga os passos abaixo para comprar novas matrículas. Escolher cursos Pagamento Revisão & confirmação {/* Cart */} {kind === 'assigned' ? ( ) : ( )} {/* Payment */} {/* Review */}
) }