import * as Icons from 'lucide-react' import { useEffect, useRef } from 'react' import type { NewSubjectWizardState } from '@/features/asignaturas/nueva/types' import { PasoBasicosForm } from '@/components/asignaturas/wizard/PasoBasicosForm/PasoBasicosForm' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { useSubject } from '@/data' export function PasoBasicosClonadoInterno({ wizard, onChange, }: { wizard: NewSubjectWizardState onChange: React.Dispatch> }) { const sourceId = wizard.clonInterno?.asignaturaOrigenId ?? null const { data: source, isLoading, isError } = useSubject(sourceId) const lastAppliedRef = useRef(null) useEffect(() => { if (!source) return if (lastAppliedRef.current === source.id) return lastAppliedRef.current = source.id onChange((w) => ({ ...w, datosBasicos: { ...w.datosBasicos, nombre: source.nombre, codigo: source.codigo ?? '', tipo: (source.tipo as any) ?? null, creditos: source.creditos, horasAcademicas: (source as any).horas_academicas ?? null, horasIndependientes: (source as any).horas_independientes ?? null, estructuraId: (source.estructura_id ?? w.datosBasicos.estructuraId) as any, }, })) }, [onChange, source]) if (!sourceId) { return ( Datos básicos Selecciona una asignatura fuente para continuar. ) } if (isLoading) { return ( Datos básicos Cargando información de la asignatura fuente… ) } if (isError || !source) { return ( No se pudo cargar la fuente Intenta seleccionar otra asignatura. ) } return ( ) }