import type { Route } from './+types/index' import Fuse from 'fuse.js' import { AwardIcon, BanIcon, FileBadgeIcon, LaptopIcon } from 'lucide-react' import { Suspense, useMemo } from 'react' import { Await, NavLink, useSearchParams } from 'react-router' import placeholder from '@/assets/placeholder.webp' import { SearchForm } from '@/components/search-form' import { Skeleton } from '@/components/skeleton' import { Card, CardFooter, CardHeader, CardTitle } from '@/components/ui/card' import { Empty, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from '@/components/ui/empty' import { Kbd } from '@/components/ui/kbd' import { Spinner } from '@/components/ui/spinner' import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip' import { createSearch } from '@/lib/meili' import type { Course } from './edit' export function meta({}: Route.MetaArgs) { return [{ title: 'Gerenciar seus cursos' }] } export const loader = async ({ context }: Route.ActionArgs) => { return { data: createSearch({ index: 'saladeaula_courses', sort: ['created_at:desc'], env: context.cloudflare.env }) } } export default function Component({ loaderData: { data } }) { const [searchParams, setSearchParams] = useSearchParams() const term = searchParams.get('term') as string return (
Gerencie seus cursos com facilidade e organize seu conteúdo.
Tempo de acesso ao curso
Perído de validade do certificado