codigo0/dist/assets/GuideNavigation-n48bbOFF.js
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  Ticket 1.1: Estructura Clean Architecture en backend
-  Ticket 1.2: Schemas Zod compartidos
-  Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares)
-  Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares)
-  Ticket 1.5: Eliminación de duplicidades (~50 líneas)

Cambios principales:
- Creada estructura Clean Architecture en backend/src/
- Schemas Zod compartidos en backend/src/shared/schemas/
- Refactorización modular de drugs y procedures
- Utilidades genéricas en src/utils/ (filter, validation)
- Eliminados scripts obsoletos y documentación antigua
- Corregidos errores: QueryClient, import test-error-handling
- Build verificado y funcionando correctamente
2026-01-25 21:09:47 +01:00

2 lines
5.8 KiB
JavaScript

import{b5 as p,Q as m,j as e,ag as h,F as x,a as r,E as i,as as j,q as f}from"./0-vendor-react-DWOJpYrt.js";import{G as g}from"./index-BC9VFTAD.js";import{c as v}from"./page-rcp-CpOLvkbh.js";import{b as N,i as u}from"./page-farmacos-oJNXc_A2.js";const O=({guide:t})=>{const o=p[t.icono]||m,s=v(t.id);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/20 flex items-center justify-center",children:e.jsx(o,{className:"w-7 h-7 text-primary"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx("h1",{className:"text-3xl font-bold text-foreground",children:t.titulo}),e.jsx(g,{})]}),e.jsx("p",{className:"text-muted-foreground",children:"Guía de Refuerzo — Modo Formativo"})]})]}),e.jsxs("div",{className:"bg-muted/50 border border-border rounded-lg p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(h,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"text-muted-foreground",children:"Tiempo estimado: "}),e.jsx("span",{className:"font-medium text-foreground",children:"40-60 min"})]}),s&&"protocoloId"in s&&s.protocoloId&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(x,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"}),e.jsx("span",{className:"text-muted-foreground",children:"Protocolo relacionado: "}),e.jsx(r,{to:s.protocoloRuta||"#",className:"font-medium text-blue-600 dark:text-blue-400 hover:underline",children:s.protocoloTitulo})]}),s&&s.tieneManual&&s.manualRuta&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(m,{className:"w-4 h-4 text-purple-600 dark:text-purple-400"}),e.jsx("span",{className:"text-muted-foreground",children:"Manual relacionado: "}),e.jsx(r,{to:s.manualRuta,className:"font-medium text-purple-600 dark:text-purple-400 hover:underline",children:s.manualTitulo||"Ver Manual Completo"})]}),!s&&t.protocoloOperativo&&e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(x,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"}),e.jsx("span",{className:"text-muted-foreground",children:"Protocolo relacionado: "}),e.jsx(r,{to:t.protocoloOperativo.ruta,className:"font-medium text-blue-600 dark:text-blue-400 hover:underline",children:t.protocoloOperativo.titulo})]})]}),s&&"protocoloId"in s&&s.protocoloId&&s.protocoloRuta&&e.jsx("div",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:"¿Necesitas el protocolo operativo?"}),e.jsx("p",{className:"font-medium text-foreground",children:s.protocoloTitulo})]}),e.jsxs(r,{to:s.protocoloRuta,className:"flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors text-sm font-medium",children:[e.jsx("span",{children:"Ir a Protocolo"}),e.jsx(i,{className:"w-4 h-4"})]})]})}),!s&&t.protocoloOperativo&&e.jsx("div",{className:"bg-blue-500/10 border border-blue-500/30 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:"¿Necesitas el protocolo operativo?"}),e.jsx("p",{className:"font-medium text-foreground",children:t.protocoloOperativo.titulo})]}),e.jsxs(r,{to:t.protocoloOperativo.ruta,className:"flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors text-sm font-medium",children:[e.jsx("span",{children:"Ir a Protocolo"}),e.jsx(i,{className:"w-4 h-4"})]})]})})]})},G=({guideId:t,currentSection:o})=>{const s=N(t);if(!s)return null;const a=o>1?o-1:null,l=o<s.secciones.length?o+1:null,n=a?u(t,a):null,c=l?u(t,l):null,d=o/s.secciones.length*100;return e.jsxs("div",{className:"space-y-4 pt-6 border-t border-border",children:[e.jsxs("div",{className:"text-center space-y-2",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["Sección ",o," de ",s.secciones.length," · ",s.titulo]}),e.jsx("div",{className:"w-full bg-muted rounded-full h-2 overflow-hidden",children:e.jsx("div",{className:"h-full bg-primary transition-all duration-300 ease-out",style:{width:`${d}%`}})}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[Math.round(d),"% completado"]})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[n?e.jsxs(r,{to:`/guia-refuerzo/${t}/seccion/${a}`,className:"flex items-center gap-2 px-4 py-2 rounded-lg border border-border hover:bg-muted transition-colors group",children:[e.jsx(j,{className:"w-5 h-5 group-hover:-translate-x-1 transition-transform"}),e.jsxs("div",{className:"text-left",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:"Anterior"}),e.jsx("div",{className:"font-medium text-foreground text-sm",children:n.titulo})]})]}):e.jsx("div",{}),c?e.jsxs(r,{to:`/guia-refuerzo/${t}/seccion/${l}`,className:"flex items-center gap-2 px-4 py-2 rounded-lg border border-border hover:bg-muted transition-colors group",children:[e.jsxs("div",{className:"text-right",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:"Siguiente"}),e.jsx("div",{className:"font-medium text-foreground text-sm",children:c.titulo})]}),e.jsx(f,{className:"w-5 h-5 group-hover:translate-x-1 transition-transform"})]}):e.jsx("div",{})]}),s.protocoloOperativo&&e.jsx("div",{className:"flex justify-center",children:e.jsxs(r,{to:s.protocoloOperativo.ruta,className:"flex items-center gap-2 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors text-sm font-medium",children:[e.jsx("span",{children:"Ir a Protocolo Operativo"}),e.jsx(i,{className:"w-4 h-4"})]})})]})};export{O as G,G as a};