import { useNavigate } from '@tanstack/react-router' import * as Icons from 'lucide-react' import { useNuevoPlanWizard } from './hooks/useNuevoPlanWizard' // import type { NewPlanWizardState } from './types' import { PasoBasicosForm } from '@/components/planes/wizard/PasoBasicosForm/PasoBasicosForm' import { PasoDetallesPanel } from '@/components/planes/wizard/PasoDetallesPanel/PasoDetallesPanel' import { PasoModoCardGroup } from '@/components/planes/wizard/PasoModoCardGroup' import { PasoResumenCard } from '@/components/planes/wizard/PasoResumenCard' import { WizardControls } from '@/components/planes/wizard/WizardControls' import { defineStepper } from '@/components/stepper' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' import { WizardLayout } from '@/components/wizard/WizardLayout' import { WizardResponsiveHeader } from '@/components/wizard/WizardResponsiveHeader' // import { useGeneratePlanAI } from '@/data/hooks/usePlans' // Mock de permisos/rol const auth_get_current_user_role = (): string => 'JEFE_CARRERA' const Wizard = defineStepper( { id: 'modo', title: 'Método', description: 'Selecciona cómo crearás el plan', }, { id: 'basicos', title: 'Datos básicos', description: 'Nombre, carrera, nivel y ciclos', }, { id: 'detalles', title: 'Detalles', description: 'IA, clonado o archivos' }, { id: 'resumen', title: 'Resumen', description: 'Confirma y crea el plan' }, ) export default function NuevoPlanModalContainer() { const navigate = useNavigate() const role = auth_get_current_user_role() // const generatePlanAI = useGeneratePlanAI() const { wizard, setWizard, canContinueDesdeModo, canContinueDesdeBasicos, canContinueDesdeDetalles, } = useNuevoPlanWizard() const handleClose = () => { navigate({ to: '/planes', resetScroll: false }) } // Crear plan: ahora la lógica vive en WizardControls if (role !== 'JEFE_CARRERA') { return ( Sin permisos No tienes permisos para crear planes de estudio. ) } return ( {({ methods }) => { const idx = Wizard.utils.getIndex(methods.current.id) return ( } footerSlot={ methods.prev()} onNext={() => methods.next()} disablePrev={idx === 0 || wizard.isLoading} disableNext={ wizard.isLoading || (idx === 0 && !canContinueDesdeModo) || (idx === 1 && !canContinueDesdeBasicos) || (idx === 2 && !canContinueDesdeDetalles) } disableCreate={wizard.isLoading} isLastStep={idx >= Wizard.steps.length - 1} wizard={wizard} setWizard={setWizard} /> } >
{idx === 0 && ( )} {idx === 1 && ( )} {idx === 2 && ( )} {idx === 3 && ( )}
) }}
) }