feat(simulations): router /sujets + SimulationFlowProvider wiring + useSimulation refacto

This commit is contained in:
Hermann_Kitio 2026-04-21 02:19:43 +03:00
parent 782439b309
commit a6f95c2093
4 changed files with 87 additions and 116 deletions

View file

@ -2,6 +2,7 @@
* Page de simulation Expression Écrite.
*
* Orchestre les 3 étapes du flux : sélection de tâche saisie du texte rapport.
* Le choix du sujet est désormais délégué à la page /sujets (refonte UX 2026-04-21).
*
* Règle D : quotas et permissions passent par canSimulate() jamais de plan === '...'
* Règle H : aucune logique métier tout est dans useSimulation() et les entités.
@ -60,12 +61,18 @@ export function SimulationPage() {
reset,
} = useSimulation()
// Catalogue des sujets pour le dropdown dans SujetDisplay.
// EO_T1 n'a pas de catalogue (getSujets retourne [] — requête court-circuitée côté API).
const {
data: sujets,
isLoading: isLoadingSujets,
} = useSujets(production?.tache ?? 'EE_T1', !!production)
// Catalogue passé à SimulationForm (dropdown hérité — refacto étape 3).
const { data: sujets, isLoading: isLoadingSujets } = useSujets(
production?.tache ?? 'EE_T1',
!!production,
)
// Redirige vers /sujets dès que la création aboutit pour une tâche avec catalogue.
useEffect(() => {
if (step === 'choosing-subject' && production) {
navigate('/sujets')
}
}, [step, production, navigate])
useEffect(() => {
if (step === 'done' && production) {
@ -98,7 +105,7 @@ export function SimulationPage() {
)}
{planData &&
(step === 'choosing-subject' || step === 'task-selected' || step === 'correcting') &&
(step === 'task-selected' || step === 'correcting') &&
production && (
<SimulationForm
tache={production.tache}