onPersistDato(clave, value)}
@@ -363,6 +265,7 @@ interface InfoCardProps {
initialContent: any
placeholder?: string
description?: string
+ xColumn?: string
required?: boolean // Nueva prop para el asterisco
type?: 'text' | 'requirements' | 'evaluation'
onEnhanceAI?: (content: any) => void
@@ -376,6 +279,7 @@ function InfoCard({
initialContent,
placeholder,
description,
+ xColumn,
required,
type = 'text',
onPersist,
@@ -407,6 +311,8 @@ function InfoCard({
const handleIARequest = (campoClave: string) => {
console.log(placeholder)
+ // Añadimos un timestamp a la state para forzar que la navegación
+ // genere una nueva ubicación incluso si la ruta y los params son iguales.
navigate({
to: '/planes/$planId/asignaturas/$asignaturaId/iaasignatura',
params: { planId, asignaturaId: asignaturaId! },
@@ -414,6 +320,7 @@ function InfoCard({
activeTab: 'ia',
prefillCampo: campoClave,
prefillContenido: data,
+ _ts: Date.now(),
} as any,
})
}
@@ -467,7 +374,21 @@ function InfoCard({
variant="ghost"
size="icon"
className="h-8 w-8 text-slate-400"
- onClick={() => setIsEditing(true)}
+ onClick={() => {
+ // Si esta InfoCard proviene de una columna externa (ej: contenido_tematico),
+ // redirigimos a la pestaña de Contenido en vez de editar inline.
+ if (xColumn === 'contenido_tematico') {
+ // Agregamos un timestamp para forzar la actualización
+ // de la location.state aunque la ruta sea la misma.
+ navigate({
+ to: '/planes/$planId/asignaturas/$asignaturaId/contenido',
+ params: { planId, asignaturaId: asignaturaId! },
+ })
+ return
+ }
+
+ setIsEditing(true)
+ }}
>
@@ -487,7 +408,7 @@ function InfoCard({
value={tempText}
placeholder={placeholder}
onChange={(e) => setTempText(e.target.value)}
- className="min-h-[120px] text-sm leading-relaxed"
+ className="min-h-30 text-sm leading-relaxed"
/>