import { useHospitalStore } from '@/hooks/useHospitalStore'; import { Layout } from '@/sections/Layout'; import { Dashboard } from '@/sections/Dashboard'; import { MapaCamas } from '@/sections/MapaCamas'; import { Pacientes } from '@/sections/Pacientes'; import { Internaciones } from '@/sections/Internaciones'; import { Evoluciones } from '@/sections/Evoluciones'; import { AcidoBaseSection } from '@/sections/AcidoBase'; import { Cultivos } from '@/sections/Cultivos'; import { HistoriaClinica } from '@/sections/HistoriaClinica'; import { NuevoIngreso } from '@/sections/NuevoIngreso'; import { EditIngreso } from '@/sections/EditIngreso'; import { Spinner } from '@/components/ui/spinner'; import { Button } from '@/components/ui/button'; import { ThemeProvider } from '@/contexts/ThemeContext'; import { Toaster } from '@/components/ui/sonner'; function AppContent() { const store = useHospitalStore(); if (!store.isLoaded) { return (
); } const renderVista = () => { switch (store.vistaActual) { case 'dashboard': return ( ); case 'camas': return ( ); case 'pacientes': return ( ); case 'internaciones': return ( { store.setCurrentInternacion(id); store.setVista('historiaclinica'); }} onNuevoIngreso={() => store.setVista('nuevoingreso')} /> ); case 'evoluciones': return ( ); case 'acidobase': return ( ); case 'cultivos': return ( ); case 'historiaclinica': { const internacion = store.getInternacionById(store.currentInternacionId || ''); const paciente = internacion ? store.getPacienteById(internacion.pacienteId) : undefined; if (!internacion || !paciente) { return (

Internación no encontrada

); } return ( e.pacienteId === paciente.id)} onAgregarEvolucion={store.agregarEvolucion} onActualizarEvolucion={store.actualizarEvolucion} onEliminarEvolucion={store.eliminarEvolucion} onAgregarLaboratorio={(l) => store.agregarLaboratorio({ ...l, internacionId: internacion.id })} onActualizarLaboratorio={store.actualizarLaboratorio} onEliminarLaboratorio={store.eliminarLaboratorio} onAgregarAcidoBase={(a) => store.agregarAcidoBase({ ...a, internacionId: internacion.id })} onEliminarAcidoBase={store.eliminarAcidoBase} onAgregarCultivo={(c) => store.agregarCultivo({ ...c, internacionId: internacion.id })} onActualizarCultivo={store.actualizarCultivo} onEliminarCultivo={store.eliminarCultivo} onAgregarEstudioComplementario={(e) => store.agregarEstudioComplementario({ ...e, internacionId: internacion.id })} onEliminarEstudioComplementario={store.eliminarEstudioComplementario} onActualizarInternacion={store.actualizarInternacion} onActualizarCama={store.actualizarCama} onVolver={() => store.setVista('internaciones')} onEditarIngreso={() => { store.setVista('editaringreso'); }} /> ); } case 'nuevoingreso': return ( store.setVista('internaciones')} getAreaName={(areaId) => store.areas.find(a => a.id === areaId)?.nombre || ''} /> ); case 'editaringreso': { const internacion = store.getInternacionById(store.currentInternacionId || ''); const paciente = internacion ? store.getPacienteById(internacion.pacienteId) : undefined; if (!internacion || !paciente) { return (

Internación no encontrada

); } return ( store.setVista('historiaclinica')} getAreaName={(areaId) => store.areas.find(a => a.id === areaId)?.nombre || ''} /> ); } default: return null; } }; return ( {renderVista()} ); } function App() { return ( // @ts-expect-error - next-themes types mismatch ); } export default App;