feat: integrate Radix UI Accordion component and enhance subject wizard

- Added Radix UI Accordion component for better UI organization in PasoDetallesPanel.
- Implemented structure selection and subject suggestions management in the wizard.
- Updated subject API to initialize new subjects with null values for structure and cycle.
- Modified state management in useNuevaAsignaturaWizard to include estructuraId.
- Adjusted types for suggested subjects to include line and cycle information.
This commit is contained in:
2026-02-11 16:56:16 -06:00
parent 07d08e1b57
commit 46d8d6142e
7 changed files with 301 additions and 9 deletions

View File

@@ -6,6 +6,7 @@ export function useNuevaAsignaturaWizard(planId: string) {
const [wizard, setWizard] = useState<NewSubjectWizardState>({
step: 1,
plan_estudio_id: planId,
estructuraId: null,
tipoOrigen: null,
datosBasicos: {
nombre: '',
@@ -47,12 +48,11 @@ export function useNuevaAsignaturaWizard(planId: string) {
wizard.tipoOrigen === 'CLONADO_TRADICIONAL'
const canContinueDesdeBasicos =
(!!wizard.datosBasicos.nombre &&
wizard.datosBasicos.tipo !== null &&
wizard.datosBasicos.creditos !== null &&
wizard.datosBasicos.creditos > 0 &&
!!wizard.datosBasicos.estructuraId) ||
true
!!wizard.datosBasicos.nombre &&
wizard.datosBasicos.tipo !== null &&
wizard.datosBasicos.creditos !== null &&
wizard.datosBasicos.creditos > 0 &&
!!wizard.datosBasicos.estructuraId
const canContinueDesdeDetalles = (() => {
if (wizard.tipoOrigen === 'MANUAL') return true
@@ -65,6 +65,9 @@ export function useNuevaAsignaturaWizard(planId: string) {
if (wizard.tipoOrigen === 'CLONADO_TRADICIONAL') {
return !!wizard.clonTradicional?.archivoWordAsignaturaId
}
if (wizard.tipoOrigen === 'IA_MULTIPLE') {
return wizard.estructuraId !== null
}
return false
})()