feat: Ajout de la photo pour le dossier de l'élève + correction

sauvegarde des datas des responsables
This commit is contained in:
N3WT DE COMPET
2025-05-01 14:59:19 +02:00
parent d37e6c384d
commit 5851341235
12 changed files with 187 additions and 86 deletions

View File

@ -6,6 +6,7 @@ import { fetchRegisterForm } from '@/app/actions/subscriptionAction';
import logger from '@/utils/logger';
import SectionHeader from '@/components/SectionHeader';
import { User } from 'lucide-react';
import FileUpload from '@/components/FileUpload';
const levels = [
{ value: '1', label: 'TPS - Très Petite Section' },
@ -38,6 +39,7 @@ export default function StudentInfoForm({
setFormData({
id: data?.student?.id || '',
photo: data?.student?.photo || null,
last_name: data?.student?.last_name || '',
first_name: data?.student?.first_name || '',
address: data?.student?.address || '',
@ -110,6 +112,16 @@ export default function StudentInfoForm({
}
};
const handlePhotoUpload = (file) => {
if (file) {
setFormData((prev) => ({
...prev,
photo: file,
}));
logger.debug('Photo sélectionnée :', file.name);
}
};
// Affichage du loader pendant le chargement
if (isLoading) return <Loader />;
@ -208,54 +220,18 @@ export default function StudentInfoForm({
</div>
</div>
{/* <div className="bg-white p-6 rounded-lg shadow-sm border border-gray-200">
<h2 className="text-xl font-bold mb-4 text-gray-800">Responsables</h2>
<ResponsableInputFields
guardians={guardians}
onGuardiansChange={(id, field, value) => {
const updatedGuardians = guardians.map((resp) =>
resp.id === id ? { ...resp, [field]: value } : resp
);
setGuardians(updatedGuardians);
}}
addGuardian={(e) => {
e.preventDefault();
setGuardians([...guardians, { id: Date.now() }]);
}}
deleteGuardian={(index) => {
const newArray = [...guardians];
newArray.splice(index, 1);
setGuardians(newArray);
}}
errors={errors?.student?.guardians || []}
{/* Section pour l'upload des fichiers */}
<div className="bg-white p-6 rounded-lg shadow-sm border border-gray-200 mt-6">
<SectionHeader
icon={User}
title={`Photo de l'élève`}
description={`Ajoutez une photo de votre enfant`}
/>
<FileUpload
selectionMessage="Sélectionnez une photo à uploader"
onFileSelect={(file) => handlePhotoUpload(file)}
/>
</div>
<PaymentMethodSelector
formData={formData}
title="Frais d'inscription"
name="registration_payment"
onChange={onChange}
selected={formData.registration_payment}
paymentModes={registrationPaymentModes}
paymentModesOptions={paymentModesOptions}
amount={formData.totalRegistrationFees}
getError={getError}
getLocalError={getLocalError}
/>
<PaymentMethodSelector
formData={formData}
title="Frais de scolarité"
name="tuition_payment"
onChange={onChange}
selected={formData.tuition_payment}
paymentModes={tuitionPaymentModes}
paymentModesOptions={paymentModesOptions}
amount={formData.totalTuitionFees}
getError={getError}
getLocalError={getLocalError}
/> */}
</>
);
}