"use client"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Separator } from "@/components/ui/separator"; import { Switch } from "@/components/ui/switch"; import { Textarea } from "@/components/ui/textarea"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { toast } from "sonner"; export default function SettingsPage() { const [activeTab, setActiveTab] = useState("profile"); const [isLoading, setIsLoading] = useState(false); // Mock user data const user = { name: "Jean Dupont", email: "jean.dupont@example.com", avatar: "", bio: "Développeur frontend passionné par les interfaces utilisateur et l'expérience utilisateur.", notifications: { email: true, push: false, projectUpdates: true, groupChanges: true, newMembers: false, }, }; const { register, handleSubmit, formState: { errors } } = useForm({ defaultValues: { name: user.name, email: user.email, bio: user.bio, }, }); const onSubmitProfile = async (data: any) => { setIsLoading(true); // Simulate API call await new Promise((resolve) => setTimeout(resolve, 1000)); setIsLoading(false); toast.success("Profil mis à jour avec succès"); }; const onSubmitNotifications = async (data: any) => { setIsLoading(true); // Simulate API call await new Promise((resolve) => setTimeout(resolve, 1000)); setIsLoading(false); toast.success("Préférences de notification mises à jour avec succès"); }; const onExportData = async () => { setIsLoading(true); // Simulate API call await new Promise((resolve) => setTimeout(resolve, 1000)); setIsLoading(false); toast.success("Vos données ont été exportées. Vous recevrez un email avec le lien de téléchargement."); }; const onDeleteAccount = async () => { setIsLoading(true); // Simulate API call await new Promise((resolve) => setTimeout(resolve, 1000)); setIsLoading(false); toast.success("Votre compte a été supprimé avec succès."); }; return (

Paramètres

Profil Notifications Confidentialité Profil Gérez vos informations personnelles et votre profil.
{user.name.split(" ").map(n => n[0]).join("")}
{errors.name && (

{errors.name.message}

)}
{errors.email && (

{errors.email.message}

)}