'use client'; import React, { useState, useEffect } from 'react'; import InputText from '@/components/Form/InputText'; import SelectChoice from '@/components/Form/SelectChoice'; import Button from '@/components/Form/Button'; import { Plus, Save, X } from 'lucide-react'; export default function EvaluationForm({ specialities, period, schoolClassId, establishmentId, initialValues, onSubmit, onCancel, }) { const isEditing = !!initialValues; const [form, setForm] = useState({ name: '', speciality: '', date: '', max_score: '20', coefficient: '1', description: '', }); useEffect(() => { if (initialValues) { setForm({ name: initialValues.name || '', speciality: initialValues.speciality?.toString() || '', date: initialValues.date || '', max_score: initialValues.max_score?.toString() || '20', coefficient: initialValues.coefficient?.toString() || '1', description: initialValues.description || '', }); } }, [initialValues]); const [errors, setErrors] = useState({}); const validate = () => { const newErrors = {}; if (!form.name.trim()) newErrors.name = 'Le nom est requis'; if (!form.speciality) newErrors.speciality = 'La matière est requise'; return newErrors; }; const handleSubmit = (e) => { e.preventDefault(); const validationErrors = validate(); if (Object.keys(validationErrors).length > 0) { setErrors(validationErrors); return; } onSubmit({ name: form.name, speciality: Number(form.speciality), school_class: schoolClassId, establishment: establishmentId, period: period, date: form.date || null, max_score: parseFloat(form.max_score) || 20, coefficient: parseFloat(form.coefficient) || 1, description: form.description, }); }; return (
); }