import { useNavigate } from '@tanstack/react-router'
import * as Icons from 'lucide-react'
import { useNuevaAsignaturaWizard } from './hooks/useNuevaAsignaturaWizard'
import { PasoBasicosForm } from '@/components/asignaturas/wizard/PasoBasicosForm'
import { PasoConfiguracionPanel } from '@/components/asignaturas/wizard/PasoConfiguracionPanel'
import { PasoMetodoCardGroup } from '@/components/asignaturas/wizard/PasoMetodoCardGroup'
import { PasoResumenCard } from '@/components/asignaturas/wizard/PasoResumenCard'
import { WizardControls } from '@/components/asignaturas/wizard/WizardControls'
import { defineStepper } from '@/components/stepper'
import { Button } from '@/components/ui/button'
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from '@/components/ui/card'
import { WizardLayout } from '@/components/wizard/WizardLayout'
import { WizardResponsiveHeader } from '@/components/wizard/WizardResponsiveHeader'
const auth_get_current_user_role = (): string => 'JEFE_CARRERA'
const Wizard = defineStepper(
{
id: 'metodo',
title: 'Método',
description: 'Manual, IA o Clonado',
},
{
id: 'basicos',
title: 'Datos básicos',
description: 'Nombre y estructura',
},
{
id: 'detalles',
title: 'Detalles',
description: 'Detalles según modo',
},
{
id: 'resumen',
title: 'Resumen',
description: 'Confirmar creación',
},
)
export function NuevaAsignaturaModalContainer({ planId }: { planId: string }) {
const navigate = useNavigate()
const role = auth_get_current_user_role()
const {
wizard,
setWizard,
canContinueDesdeMetodo,
canContinueDesdeBasicos,
canContinueDesdeConfig,
simularGeneracionIA,
crearAsignatura,
} = useNuevaAsignaturaWizard(planId)
const handleClose = () => {
navigate({ to: `/planes/${planId}/asignaturas`, resetScroll: false })
}
if (role !== 'JEFE_CARRERA') {
return (
Sin permisos
Solo el Jefe de Carrera puede crear asignaturas.
)
}
return (
{({ methods }) => {
const idx = Wizard.utils.getIndex(methods.current.id)
return (
}
footerSlot={
crearAsignatura(handleClose)}
/>
}
>
{idx === 0 && (
)}
{idx === 1 && (
)}
{idx === 2 && (
)}
{idx === 3 && (
)}
)
}}
)
}