'use client'; import { useState, useEffect } from 'react'; import AlertModal from './AlertModal'; import { useBodyScrollLock } from '@/lib/body-scroll-lock'; interface UniversPro { id: string; nom: string; prenom: string; telephone: string; email: string; adresse: string; nomEntreprise: string; } interface UniversProFormProps { contact: UniversPro | null; onClose: () => void; } export default function UniversProForm({ contact, onClose }: UniversProFormProps) { useBodyScrollLock(true); const [loading, setLoading] = useState(false); const [isMobile, setIsMobile] = useState(false); const [alertModal, setAlertModal] = useState<{ show: boolean; type: 'success' | 'error' | 'info' | 'warning'; title: string; message: string; } | null>(null); const [formData, setFormData] = useState({ nom: '', prenom: '', telephone: '', email: '', adresse: '', nomEntreprise: '', }); useEffect(() => { if (contact) { setFormData({ nom: contact.nom, prenom: contact.prenom, telephone: contact.telephone, email: contact.email, adresse: contact.adresse, nomEntreprise: contact.nomEntreprise, }); } }, [contact]); useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth < 768); // md breakpoint }; checkMobile(); window.addEventListener('resize', checkMobile); return () => window.removeEventListener('resize', checkMobile); }, []); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { const url = contact ? `/api/univers-pro/${contact.id}` : '/api/univers-pro'; const method = contact ? 'PUT' : 'POST'; const response = await fetch(url, { method, headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(formData), }); if (response.ok) { onClose(); } else { const error = await response.json(); setAlertModal({ show: true, type: 'error', title: 'Erreur', message: error.error || 'Une erreur est survenue', }); } } catch (error) { console.error('Erreur:', error); setAlertModal({ show: true, type: 'error', title: 'Erreur', message: 'Une erreur est survenue', }); } finally { setLoading(false); } }; // Si on est sur mobile, afficher un message au lieu du formulaire if (isMobile) { return (
Pour {contact ? 'modifier' : 'créer'} un contact professionnel, veuillez utiliser un ordinateur. Cette fonctionnalité n'est pas optimisée pour les appareils mobiles.
{contact ? 'Modifiez les informations du contact ci-dessous.' : 'Remplissez les informations pour créer un nouveau contact professionnel.'}