diff --git a/src/modules/ar1/pages/Ar1Wizard.js b/src/modules/ar1/pages/Ar1Wizard.js index b251df3..313114f 100644 --- a/src/modules/ar1/pages/Ar1Wizard.js +++ b/src/modules/ar1/pages/Ar1Wizard.js @@ -104,9 +104,9 @@ const Ar1Wizard = () => { }; const submitFinale = () => { + if (!activeQuadro) return; setSubmitting(true); - const currentQuadro = quadri[activeIndex]; - const patch = { [currentQuadro.id]: quadriValues[currentQuadro.id] || {} }; + const patch = { [activeQuadro.id]: quadriValues[activeQuadro.id] || {} }; Ar1Service.updateQuadri(formId, patch, () => { Ar1Service.submitForSignature(formId, @@ -315,10 +315,13 @@ const Ar1Wizard = () => { if (loading) return
; if (!form) return
; + if (quadri.length === 0) return
; const steps = quadri.map(q => ({ label: q.id })); - const activeQuadro = quadri[activeIndex]; - const isLastStep = activeIndex === quadri.length - 1; + // clamp activeIndex: difensivo se quadri cambia lunghezza o e fuori range + const safeIndex = quadri.length === 0 ? 0 : Math.max(0, Math.min(activeIndex, quadri.length - 1)); + const activeQuadro = quadri[safeIndex]; + const isLastStep = safeIndex === quadri.length - 1; return (
@@ -330,24 +333,25 @@ const Ar1Wizard = () => { { if (!isReadonly && activeQuadro) saveQuadro(activeQuadro.id); - setActiveIndex(e.index); + const next = Math.max(0, Math.min(e.index, quadri.length - 1)); + setActiveIndex(next); }} readOnly={false} style={{ marginBottom: 20 }} /> - !isReadonly && saveQuadro(activeQuadro.id)}> + { if (!isReadonly && activeQuadro) saveQuadro(activeQuadro.id); }}> {activeQuadro && renderQuadro(activeQuadro)}