"use client"; import { useState, useEffect } from "react"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useAuth } from "@/contexts/AuthContext"; import { profileUpdateSchema, ProfileUpdateFormData } from "@/lib/validations"; import { Input } from "@/components/ui/Input"; import Button from "@/components/Button"; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/Card"; import { Badge } from "@/components/ui/Badge"; import { userService } from "@/services/user.service"; import toast from "react-hot-toast"; import { useRouter } from "next/navigation"; import { ROUTES } from "@/utils/constants"; import { formatDate } from "@/utils/helpers"; export const dynamic = 'force-dynamic'; export default function AdminProfilePage() { const { user, isAuthenticated, refreshUser } = useAuth(); const router = useRouter(); const [isEditing, setIsEditing] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const { register, handleSubmit, reset, formState: { errors }, } = useForm({ resolver: zodResolver(profileUpdateSchema), defaultValues: { firstName: user?.firstName || "", lastName: user?.lastName || "", phone: user?.phone || "", }, }); if (!user) { return null; } const onSubmit = async (data: ProfileUpdateFormData) => { setIsSubmitting(true); try { await userService.updateProfile(data); await refreshUser(); toast.success("Profil mis à jour avec succès"); setIsEditing(false); } catch (error: any) { toast.error(error.message || "Erreur lors de la mise à jour du profil"); } finally { setIsSubmitting(false); } }; const handleCancel = () => { reset({ firstName: user?.firstName || "", lastName: user?.lastName || "", phone: user?.phone || "", }); setIsEditing(false); }; return (

Mon profil

{/* Profile Info Card */}

Informations personnelles

{!isEditing ? (

{user.firstName}

{user.lastName}

{user.email}

{user.phone || "Non renseigné"}

Administrateur
) : (
)}
{/* Account Status Card */}

Statut du compte

{user.isVerified ? ( Vérifié ✓ ) : ( Non vérifié )}

{formatDate(user.createdAt)}

{/* Quick Actions Card */}

Actions rapides

); }