mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 16:03:21 +00:00
refactor: Création de nouveaux composants / update formulaire de
création de classe (#2)
This commit is contained in:
70
Front-End/src/context/ClasseFormContext.js
Normal file
70
Front-End/src/context/ClasseFormContext.js
Normal file
@ -0,0 +1,70 @@
|
||||
import React, { createContext, useState, useContext } from 'react';
|
||||
import { useClasses } from '@/context/ClassesContext'
|
||||
|
||||
const ClasseFormContext = createContext();
|
||||
|
||||
export const useClasseForm = () => useContext(ClasseFormContext);
|
||||
|
||||
export const ClasseFormProvider = ({ children, initialClasse }) => {
|
||||
|
||||
const { getNiveauxLabels, selectedDays } = useClasses();
|
||||
|
||||
const [formData, setFormData] = useState(() => {
|
||||
const planning = initialClasse.planning || {};
|
||||
const emploiDuTemps = planning.emploiDuTemps || {};
|
||||
|
||||
const dateDebutSemestre1 = emploiDuTemps.S1 ? emploiDuTemps.S1.DateDebut : '';
|
||||
const dateFinSemestre1 = emploiDuTemps.S1 ? emploiDuTemps.S1.DateFin : '';
|
||||
const dateDebutSemestre2 = emploiDuTemps.S2 ? emploiDuTemps.S2.DateDebut : '';
|
||||
const dateFinSemestre2 = emploiDuTemps.S2 ? emploiDuTemps.S2.DateFin : '';
|
||||
|
||||
const dateDebutTrimestre1 = emploiDuTemps.T1 ? emploiDuTemps.T1.DateDebut : '';
|
||||
const dateFinTrimestre1 = emploiDuTemps.T1 ? emploiDuTemps.T1.DateFin : '';
|
||||
const dateDebutTrimestre2 = emploiDuTemps.T2 ? emploiDuTemps.T2.DateDebut : '';
|
||||
const dateFinTrimestre2 = emploiDuTemps.T2 ? emploiDuTemps.T2.DateFin : '';
|
||||
const dateDebutTrimestre3 = emploiDuTemps.T3 ? emploiDuTemps.T3.DateDebut : '';
|
||||
const dateFinTrimestre3 = emploiDuTemps.T3 ? emploiDuTemps.T3.DateFin : '';
|
||||
|
||||
return {
|
||||
nom_ambiance: initialClasse.nom_ambiance || '',
|
||||
tranche_age: initialClasse.tranche_age || '',
|
||||
nombre_eleves: initialClasse.nombre_eleves || '',
|
||||
langue_enseignement: initialClasse.langue_enseignement || 'Français',
|
||||
annee_scolaire: initialClasse.annee_scolaire || '',
|
||||
enseignants_ids: initialClasse.enseignants_ids || [],
|
||||
planning_type: planning.type || 1,
|
||||
plage_horaire: planning.plageHoraire || ['08:30', '17:30'],
|
||||
jours_ouverture: planning.joursOuverture || [1, 2, 4, 5],
|
||||
niveaux: initialClasse.niveaux || [],
|
||||
niveaux_label: getNiveauxLabels(initialClasse.niveaux || []),
|
||||
date_debut_semestre_1: dateDebutSemestre1,
|
||||
date_fin_semestre_1: dateFinSemestre1,
|
||||
date_debut_semestre_2: dateDebutSemestre2,
|
||||
date_fin_semestre_2: dateFinSemestre2,
|
||||
date_debut_trimestre_1: dateDebutTrimestre1,
|
||||
date_fin_trimestre_1: dateFinTrimestre1,
|
||||
date_debut_trimestre_2: dateDebutTrimestre2,
|
||||
date_fin_trimestre_2: dateFinTrimestre2,
|
||||
date_debut_trimestre_3: dateDebutTrimestre3,
|
||||
date_fin_trimestre_3: dateFinTrimestre3,
|
||||
planning: {
|
||||
type: planning.type || 1,
|
||||
plageHoraire: planning.plageHoraire || ['08:30', '17:30'],
|
||||
joursOuverture: planning.joursOuverture || [1, 2, 4, 5],
|
||||
emploiDuTemps: planning.emploiDuTemps || {
|
||||
S1: { DateDebut: '', DateFin: '', lundi: [], mardi: [], mercredi: [], jeudi: [], vendredi: [], samedi: [], dimanche: [] },
|
||||
S2: { DateDebut: '', DateFin: '', lundi: [], mardi: [], mercredi: [], jeudi: [], vendredi: [], samedi: [], dimanche: [] },
|
||||
T1: { DateDebut: '', DateFin: '', lundi: [], mardi: [], mercredi: [], jeudi: [], vendredi: [], samedi: [], dimanche: [] },
|
||||
T2: { DateDebut: '', DateFin: '', lundi: [], mardi: [], mercredi: [], jeudi: [], vendredi: [], samedi: [], dimanche: [] },
|
||||
T3: { DateDebut: '', DateFin: '', lundi: [], mardi: [], mercredi: [], jeudi: [], vendredi: [], samedi: [], dimanche: [] },
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
return (
|
||||
<ClasseFormContext.Provider value={{ formData, setFormData }}>
|
||||
{children}
|
||||
</ClasseFormContext.Provider>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user