"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 (
Recevez des notifications par email.
Recevez des notifications push dans votre navigateur.
Soyez notifié des mises à jour de vos projets.
Soyez notifié des changements dans vos groupes.
Soyez notifié lorsque de nouveaux membres rejoignent vos projets.
Téléchargez une copie de vos données personnelles.
Supprimez définitivement votre compte et toutes vos données.