update saladeaul.adigitaltw

This commit is contained in:
2025-11-10 15:33:23 -03:00
parent c3f370e86c
commit 9ff11c997c
46 changed files with 302 additions and 1941 deletions

View File

@@ -1,7 +1,7 @@
import type { Route } from './+types'
import { userContext } from '@/context'
import type { User } from '@/lib/auth'
import type { User } from '@repo/auth/auth'
import { userContext } from '@repo/auth/context'
export const loader = proxy
export const action = proxy

View File

@@ -2,8 +2,8 @@ import type { Route } from './+types'
import { redirect } from 'react-router'
import { createAuth, type User } from '@/lib/auth'
import { createSessionStorage } from '@/lib/session'
import { createAuth, type User } from '@repo/auth/auth'
import { createSessionStorage } from '@repo/auth/session'
export async function loader({ request, context }: Route.ActionArgs) {
const sessionStorage = createSessionStorage(context.cloudflare.env)

View File

@@ -1,7 +1,7 @@
import type { Route } from './+types'
import { createAuth, type User } from '@/lib/auth'
import { createSessionStorage } from '@/lib/session'
import { createAuth, type User } from '@repo/auth/auth'
import { createSessionStorage } from '@repo/auth/session'
import { redirect } from 'react-router'
import type { OAuth2Strategy } from 'remix-auth-oauth2'

View File

@@ -10,10 +10,20 @@ import {
import { Suspense, useState, type ReactNode } from 'react'
import { useForm } from 'react-hook-form'
import { Await, useAsyncValue, useFetcher } from 'react-router'
import { toast } from 'sonner'
import { z } from 'zod'
import { Skeleton } from '@/components/skeleton'
import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'
import { HttpMethod, request as req } from '@/lib/request'
import type { User } from '@repo/auth/auth'
import { userContext } from '@repo/auth/context'
import { Skeleton } from '@repo/ui/components/skeleton'
import {
Alert,
AlertDescription,
AlertTitle
} from '@repo/ui/components/ui/alert'
import {
Breadcrumb,
BreadcrumbItem,
@@ -21,22 +31,22 @@ import {
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from '@/components/ui/breadcrumb'
import { Button } from '@/components/ui/button'
} from '@repo/ui/components/ui/breadcrumb'
import { Button } from '@repo/ui/components/ui/button'
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle
} from '@/components/ui/card'
import { Checkbox } from '@/components/ui/checkbox'
} from '@repo/ui/components/ui/card'
import { Checkbox } from '@repo/ui/components/ui/checkbox'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger
} from '@/components/ui/dropdown-menu'
} from '@repo/ui/components/ui/dropdown-menu'
import {
Form,
FormControl,
@@ -45,19 +55,16 @@ import {
FormItem,
FormLabel,
FormMessage
} from '@/components/ui/form'
import { Input } from '@/components/ui/input'
} from '@repo/ui/components/ui/form'
import { Input } from '@repo/ui/components/ui/input'
import {
InputGroup,
InputGroupAddon,
InputGroupButton,
InputGroupInput
} from '@/components/ui/input-group'
import { Spinner } from '@/components/ui/spinner'
import { Switch } from '@/components/ui/switch'
import { userContext } from '@/context'
import type { User } from '@/lib/auth'
import { HttpMethod, request as req } from '@/lib/request'
} from '@repo/ui/components/ui/input-group'
import { Spinner } from '@repo/ui/components/ui/spinner'
import { Switch } from '@repo/ui/components/ui/switch'
const schema = z
.object({
@@ -207,22 +214,13 @@ function Editing() {
method: 'post',
encType: 'multipart/form-data'
})
toast.success('O curso foi atualizado')
}
return (
<Form {...form}>
<form onSubmit={handleSubmit(onSubmit)} className="space-y-4">
{formState.isSubmitSuccessful ? (
<Alert variant="default">
<CircleCheckIcon />
<AlertTitle>Curso atualizado!</AlertTitle>
<AlertDescription>
Tudo pronto! As mudanças foram salvas e seu curso está
atualizado.
</AlertDescription>
</Alert>
) : null}
<Card>
<CardHeader>
<CardTitle className="text-2xl">Editar curso</CardTitle>
@@ -413,7 +411,7 @@ function Editing() {
<div className="flex justify-end">
<Button
type="submit"
className="bg-lime-400 cursor-pointer"
className="cursor-pointer"
disabled={formState.isSubmitting}
>
{formState.isSubmitting && <Spinner />}

View File

@@ -6,24 +6,31 @@ 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 { createSearch } from '@/lib/meili'
import { SearchForm } from '@repo/ui/components/search-form'
import { Skeleton } from '@repo/ui/components/skeleton'
import {
Card,
CardFooter,
CardHeader,
CardTitle
} from '@repo/ui/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'
} from '@repo/ui/components/ui/empty'
import { Kbd } from '@repo/ui/components/ui/kbd'
import { Spinner } from '@repo/ui/components/ui/spinner'
import {
Tooltip,
TooltipContent,
TooltipTrigger
} from '@/components/ui/tooltip'
import { createSearch } from '@/lib/meili'
} from '@repo/ui/components/ui/tooltip'
import type { Course } from './edit'
export function meta({}: Route.MetaArgs) {
@@ -62,8 +69,8 @@ export default function Component({ loaderData: { data } }) {
</>
}
defaultValue={term}
onChange={(e) => {
setSearchParams({ term: e.target.value })
onChange={(term) => {
setSearchParams({ term })
}}
/>
</div>

View File

@@ -2,10 +2,10 @@ import type { Route } from './+types'
import { Link, Outlet } from 'react-router'
import logo from '@/components/logo.svg'
import { NavUser } from '@/components/nav-user'
import { userContext } from '@/context'
import { authMiddleware } from '@/middleware/auth'
import { userContext } from '@repo/auth/context'
import { authMiddleware } from '@repo/auth/middleware/auth'
import { ModeToggle, ThemedImage } from '@repo/ui/components/dark-mode'
import { NavUser } from '@repo/ui/components/nav-user'
export const middleware: Route.MiddlewareFunction[] = [authMiddleware]
@@ -24,12 +24,14 @@ export default function Component({ loaderData }: Route.ComponentProps) {
px-4 py-2 lg:py-4 sticky top-0 z-5"
>
<div className="container mx-auto flex items-center">
<Link to="/" className="flex items-start gap-1">
<img src={logo} className="h-6 lg:h-8" />
<span className="text-muted-foreground text-xs">Estúdio</span>
<Link to="/">
<ThemedImage className="flex gap-1">
<span className="text-muted-foreground text-xs">Estúdio</span>
</ThemedImage>
</Link>
<div className="ml-auto">
<div className="ml-auto flex gap-2.5 items-center">
<ModeToggle />
<NavUser user={user} />
</div>
</div>