From 56d23f1aa5e68f09ffa081f5e8bf68acfb98ed40 Mon Sep 17 00:00:00 2001 From: "Roberto.silva" Date: Fri, 13 Feb 2026 13:56:30 -0600 Subject: [PATCH] Se agrega componente --- .../planes/detalle/Ia/ImprovementCard.tsx | 67 +++++++++++++++++ src/routes/planes/$planId/_detalle/iaplan.tsx | 71 +------------------ 2 files changed, 68 insertions(+), 70 deletions(-) create mode 100644 src/components/planes/detalle/Ia/ImprovementCard.tsx diff --git a/src/components/planes/detalle/Ia/ImprovementCard.tsx b/src/components/planes/detalle/Ia/ImprovementCard.tsx new file mode 100644 index 0000000..a4219e0 --- /dev/null +++ b/src/components/planes/detalle/Ia/ImprovementCard.tsx @@ -0,0 +1,67 @@ +import { Check } from 'lucide-react' +import { useState } from 'react' + +import { Button } from '@/components/ui/button' + +export const ImprovementCard = ({ + suggestions, + onApply, +}: { + suggestions: Array + onApply: (key: string, value: string) => void +}) => { + // Estado para rastrear qué campos han sido aplicados + const [appliedFields, setAppliedFields] = useState>([]) + + const handleApply = (key: string, value: string) => { + onApply(key, value) + setAppliedFields((prev) => [...prev, key]) + } + + return ( +
+ {suggestions.map((sug) => { + const isApplied = appliedFields.includes(sug.key) + + return ( +
+
+

{sug.label}

+ +
+ +
+ {sug.newValue} +
+
+ ) + })} +
+ ) +} diff --git a/src/routes/planes/$planId/_detalle/iaplan.tsx b/src/routes/planes/$planId/_detalle/iaplan.tsx index 5ffe016..38d307a 100644 --- a/src/routes/planes/$planId/_detalle/iaplan.tsx +++ b/src/routes/planes/$planId/_detalle/iaplan.tsx @@ -18,6 +18,7 @@ import { useState, useEffect, useRef, useMemo } from 'react' import type { UploadedFile } from '@/components/planes/wizard/PasoDetallesPanel/FileDropZone' +import { ImprovementCard } from '@/components/planes/detalle/Ia/ImprovementCard' import ReferenciasParaIA from '@/components/planes/wizard/PasoDetallesPanel/ReferenciasParaIA' import { Button } from '@/components/ui/button' import { Drawer, DrawerContent } from '@/components/ui/drawer' @@ -256,28 +257,22 @@ ${fieldsText}`.trim() if (!rawText.trim() && selectedFields.length === 0) return const finalPrompt = buildPrompt(rawText) - const userMsg = { id: Date.now().toString(), role: 'user', content: finalPrompt, } - - // setMessages((prev) => [...prev, userMsg]) setInput('') setIsLoading(true) - // setSelectedFields([]) setSelectedArchivoIds([]) setSelectedRepositorioIds([]) setUploadedFiles([]) - setTimeout(() => { const suggestions = selectedFields.map((field) => ({ key: field.key, label: field.label, newValue: field.value, })) - setMessages((prev) => [ ...prev, { @@ -293,7 +288,6 @@ ${fieldsText}`.trim() }, 1200) } - // ... debajo de tus otros hooks const totalReferencias = useMemo(() => { return ( selectedArchivoIds.length + @@ -620,66 +614,3 @@ ${fieldsText}`.trim() ) } - -const ImprovementCard = ({ - suggestions, - onApply, -}: { - suggestions: Array - onApply: (key: string, value: string) => void -}) => { - // Estado para rastrear qué campos han sido aplicados - const [appliedFields, setAppliedFields] = useState>([]) - - const handleApply = (key: string, value: string) => { - onApply(key, value) - setAppliedFields((prev) => [...prev, key]) - } - - return ( -
- {suggestions.map((sug) => { - const isApplied = appliedFields.includes(sug.key) - - return ( -
-
-

{sug.label}

- -
- -
- {sug.newValue} -
-
- ) - })} -
- ) -}