diff --git a/app/dashboard/settings/page.tsx b/app/dashboard/settings/page.tsx index 811b200..49bb930 100644 --- a/app/dashboard/settings/page.tsx +++ b/app/dashboard/settings/page.tsx @@ -1,14 +1,26 @@ 'use client'; import cookies from 'js-cookie'; -import { useContext } from 'react'; +import { useRouter } from 'next/navigation'; +import { useContext, useState } from 'react'; import { useForm } from 'react-hook-form'; import { useSWRConfig } from 'swr'; +import { z } from 'zod'; +import { Button } from '@/components/ui/Button'; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage +} from '@/components/ui/Form'; +import { Input } from '@/components/ui/Input'; import { UserContext } from '@/context/user'; -import Button from '@/ui/Button'; -import Select from '@/ui/Select'; -import { useRouter } from 'next/navigation'; +import { type Player } from '@/lib/players'; +import { zodResolver } from '@hookform/resolvers/zod'; +import { Loader2 } from 'lucide-react'; type SettingsData = { name: string; @@ -60,17 +72,133 @@ export default function Page() { } return ( -
- {me && me?.groups?.length > 0 ? ( -
- + +
+ ) : ( +

Vous n' êtes dans aucun groupe

+ )} */} +
); } + +const ProfileFormSchema = z.object({ + email: z.string().email({ message: "L'email doit être valide" }), + pseudo: z.string(), + firstname: z.string(), + lastname: z.string(), + description: z.string() +}); + +function ProfileForm({ user }: { user: Player }) { + const form = useForm>({ + resolver: zodResolver(ProfileFormSchema), + defaultValues: { + email: user.email, + pseudo: user.pseudo, + firstname: user.firstname, + lastname: user.lastname, + description: user.description + }, + mode: 'onChange' + }); + + const [submit, setSubmit] = useState(false); + + // TODO: Route pas encore faite + async function onSubmit(data: z.infer) { + console.log(data); + setSubmit(!submit); + setTimeout(() => { + setSubmit(false); + }, 2000); + } + + return ( +
+ + ( + + Email + + + + + + )} + /> + ( + + Pseudo + + + + + + )} + /> + ( + + Prénom + + + + + + )} + /> + ( + + Nom + + + + + + )} + /> + ( + + Description + + + + + + )} + /> + + + + ); +}