'use client' import { useState } from 'react' import Link from "next/link" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Badge } from "@/components/ui/badge" import { Textarea } from "@/components/ui/textarea" import { Checkbox } from "@/components/ui/checkbox" import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Shield, ArrowLeft, Users, Calendar, MapPin, Mail, Phone, Building, User, FileText, CheckCircle, Loader2 } from 'lucide-react' import { submitFormationForm } from '@/app/actions/formation' export default function DevisFormationPage() { const [formData, setFormData] = useState({ // Informations entreprise entreprise: '', secteur: '', taille: '', siret: '', // Contact nom: '', prenom: '', fonction: '', email: '', telephone: '', // Formation formations: [] as string[], modalite: '', participants: '', dates: '', lieu: '', // Besoins spécifiques objectifs: '', niveau: '', contraintes: '', // Options certification: false, support: false, accompagnement: false }) const [isSubmitting, setIsSubmitting] = useState(false) const [submitResult, setSubmitResult] = useState<{ success: boolean; message: string } | null>(null) const handleFormationChange = (formation: string, checked: boolean) => { if (checked) { setFormData(prev => ({ ...prev, formations: [...prev.formations, formation] })) } else { setFormData(prev => ({ ...prev, formations: prev.formations.filter(f => f !== formation) })) } } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setIsSubmitting(true) setSubmitResult(null) try { const formDataToSend = new FormData() // Ajout de tous les champs au FormData Object.entries(formData).forEach(([key, value]) => { if (key === 'formations') { value.forEach((formation: string) => formDataToSend.append('formations', formation)) } else if (typeof value === 'boolean') { formDataToSend.append(key, value.toString()) } else { formDataToSend.append(key, value) } }) const result = await submitFormationForm(formDataToSend) setSubmitResult(result) if (result.success) { // Reset du formulaire en cas de succès setFormData({ entreprise: '', secteur: '', taille: '', siret: '', nom: '', prenom: '', fonction: '', email: '', telephone: '', formations: [], modalite: '', participants: '', dates: '', lieu: '', objectifs: '', niveau: '', contraintes: '', certification: false, support: false, accompagnement: false }) } } catch (error) { setSubmitResult({ success: false, message: 'Une erreur inattendue est survenue. Veuillez réessayer.' }) } finally { setIsSubmitting(false) } } if (submitResult?.success) { return (
Demande envoyée ! {submitResult.message}

Prochaines étapes :

  • • Un expert 4NK vous contactera sous 24h
  • • Analyse personnalisée de vos besoins
  • • Proposition de devis détaillé
  • • Planification des sessions de formation

Contact direct : contact@docv.fr

) } return (
{/* Header */}
DocV By 4NK Retour aux formations
{/* Hero */}

Demande de Devis Formation

Obtenez un devis personnalisé pour vos formations en souveraineté numérique. Nos experts vous accompagnent dans la définition de vos besoins.

{/* Message d'erreur */} {submitResult && !submitResult.success && (

{submitResult.message}

)}
{/* Informations Entreprise */} Informations Entreprise Renseignez les informations de votre organisation
setFormData(prev => ({ ...prev, entreprise: e.target.value }))} placeholder="Votre entreprise" required />
setFormData(prev => ({ ...prev, siret: e.target.value }))} placeholder="Numéro SIRET" />
{/* Contact */} Contact Vos coordonnées pour le suivi de la demande
setFormData(prev => ({ ...prev, nom: e.target.value }))} placeholder="Votre nom" required />
setFormData(prev => ({ ...prev, prenom: e.target.value }))} placeholder="Votre prénom" required />
setFormData(prev => ({ ...prev, fonction: e.target.value }))} placeholder="Votre fonction dans l'entreprise" />
setFormData(prev => ({ ...prev, email: e.target.value }))} placeholder="votre.email@entreprise.com" required />
setFormData(prev => ({ ...prev, telephone: e.target.value }))} placeholder="01 23 45 67 89" />
{/* Formations souhaitées */} Formations souhaitées Sélectionnez les formations qui vous intéressent
handleFormationChange('cybersecurite', checked as boolean)} />
handleFormationChange('hygiene', checked as boolean)} />
handleFormationChange('developpement', checked as boolean)} />
handleFormationChange('parcours-complet', checked as boolean)} />
{/* Modalités */} Modalités de formation
setFormData(prev => ({ ...prev, modalite: value }))} >
setFormData(prev => ({ ...prev, dates: e.target.value }))} placeholder="Ex: Mars 2024, Trimestre 2..." />
setFormData(prev => ({ ...prev, lieu: e.target.value }))} placeholder="Ville ou adresse" />
{/* Besoins spécifiques */} Besoins spécifiques