diff --git a/src/modules/ar1/components/QuadriStructureEditor.js b/src/modules/ar1/components/QuadriStructureEditor.js index 13c8190..7c950f3 100644 --- a/src/modules/ar1/components/QuadriStructureEditor.js +++ b/src/modules/ar1/components/QuadriStructureEditor.js @@ -100,8 +100,9 @@ const QuadriStructureEditor = ({ value, onChange }) => { const addField = (qIdx) => { const q = quadri[qIdx]; const fields = q.fields || []; + // id basato su letter quadro + numero crescente per evitare collisioni const newField = { - id: `campo_${fields.length + 1}`, + id: `campo_${q.id || 'X'}_${fields.length + 1}`.toLowerCase(), type: 'text', label: 'Nuovo campo', required: false @@ -350,28 +351,31 @@ const QuadriStructureEditor = ({ value, onChange }) => { text="Quadro normativo (D.Lgs. 231/2007). Il testo dichiara responsabilita legali del firmatario. Modifica con massima cautela: il contenuto viene inserito nel PDF firmato dal beneficiario." /> )} - {/* Fields normali */} - {(q.fields !== undefined) && ( - <> -
- Campi ({(q.fields || []).length}) -
- {(q.fields || []).map((f, fIdx) => - renderFieldRow(f, fIdx, - (p) => updateField(qIdx, fIdx, p), - () => removeField(qIdx, fIdx), - () => moveField(qIdx, fIdx, -1), - () => moveField(qIdx, fIdx, 1), - (q.fields || []).length - ) - )} - {(!q.fields || q.fields.length === 0) && !q.row_type && !q.nested_full && ( -

Nessun campo. Aggiungine uno.

- )} - - )} + {/* Fields normali — sempre mostrato, anche se q.fields non esiste (Quadri B/F/G) */} + <> +
+ Campi ({(q.fields || []).length}) +
+ {(q.fields || []).map((f, fIdx) => + renderFieldRow(f, fIdx, + (p) => updateField(qIdx, fIdx, p), + () => removeField(qIdx, fIdx), + () => moveField(qIdx, fIdx, -1), + () => moveField(qIdx, fIdx, 1), + (q.fields || []).length + ) + )} + {(!q.fields || q.fields.length === 0) && ( +

+ Nessun campo diretto. Aggiungine uno col bottone qui sopra + {q.row_type ? ` (o usa i "Campi riga" qui sotto per i ${q.row_type})` : ''} + {q.nested_full ? ' (o usa i "Campi annidati" qui sotto)' : ''} + . +

+ )} + {/* Row fields (Quadro B titolari) */} {q.row_type && (