From 3afce0de77971b64aa3166e1772f5b5685b8a894 Mon Sep 17 00:00:00 2001 From: "Roberto.silva" Date: Tue, 10 Feb 2026 11:34:58 -0600 Subject: [PATCH] Corregir que se duplica el campo fix #90 --- src/routes/planes/$planId/_detalle/iaplan.tsx | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/routes/planes/$planId/_detalle/iaplan.tsx b/src/routes/planes/$planId/_detalle/iaplan.tsx index 3f0c8f7..e6724af 100644 --- a/src/routes/planes/$planId/_detalle/iaplan.tsx +++ b/src/routes/planes/$planId/_detalle/iaplan.tsx @@ -107,12 +107,11 @@ function RouteComponent() { f.value === state.campo_edit.label || f.key === state.campo_edit.clave, ) - if (field && !selectedFields.some((sf) => sf.key === field.key)) { - setSelectedFields([field]) - } + if (!field) return + setSelectedFields([field]) setInput((prev) => - injectFieldsIntoInput(prev || 'Mejora este campo:', field ? [field] : []), + injectFieldsIntoInput(prev || 'Mejora este campo:', [field]), ) }, [availableFields]) @@ -131,21 +130,21 @@ function RouteComponent() { input: string, fields: Array, ) => { - const baseText = input.replace(/\[[^\]]+]/g, '').trim() + // Quita cualquier bloque previo de campos + const cleaned = input.replace(/\n?\[Campos:[^\]]*]/g, '').trim() - const tags = fields.map((f) => `${f.label}`).join(' ') + if (fields.length === 0) return cleaned - return `${baseText} ${tags}`.trim() + const fieldLabels = fields.map((f) => f.label).join(', ') + + return `${cleaned}\n[Campos: ${fieldLabels}]` } + const toggleField = (field: SelectedField) => { setSelectedFields((prev) => { - let nextFields - - if (prev.find((f) => f.key === field.key)) { - nextFields = prev.filter((f) => f.key !== field.key) - } else { - nextFields = [...prev, field] - } + const nextFields = prev.find((f) => f.key === field.key) + ? prev.filter((f) => f.key !== field.key) + : [...prev, field] setInput((prevInput) => injectFieldsIntoInput(prevInput || 'Mejora este campo:', nextFields), @@ -156,6 +155,7 @@ function RouteComponent() { setShowSuggestions(false) } + const buildPrompt = (userInput: string) => { if (selectedFields.length === 0) return userInput @@ -341,19 +341,13 @@ ${fieldsText}