'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 (
Contact direct : contact@docv.fr
Obtenez un devis personnalisé pour vos formations en souveraineté numérique. Nos experts vous accompagnent dans la définition de vos besoins.
{submitResult.message}