import React, { useState, useEffect } from 'react'; import { MedLandingPage } from './LandingPage.tsx'; import { MedLayout } from './MedLayout.tsx'; import { MedDashboard } from './MedDashboard.tsx'; import { MedicoBackend } from './services/medicoBackend.ts'; export type MedViewKey = | 'med-landing' | 'med-dashboard' | 'med-pacientes' | 'med-agenda' | 'med-prontuarios' | 'med-fidelidade' | 'med-financeiro' | 'medical-repasse'; const ROUTE_MAP: Record = { '/': 'med-landing', '/landingpage': 'med-landing', '/dashboard': 'med-dashboard', '/pacientes': 'med-pacientes', '/agenda': 'med-agenda', '/prontuarios': 'med-prontuarios', '/fidelidade': 'med-fidelidade', '/financeiro': 'med-financeiro', '/repasse': 'medical-repasse', }; const VIEW_TO_ROUTE: Record = { 'med-landing': '/landingpage', 'med-dashboard': '/dashboard', 'med-pacientes': '/pacientes', 'med-agenda': '/agenda', 'med-prontuarios': '/prontuarios', 'med-fidelidade': '/fidelidade', 'med-financeiro': '/financeiro', 'medical-repasse': '/repasse', }; function getHashPath(): string { const hash = window.location.hash; if (hash.startsWith('#/')) return hash.slice(1); return '/'; } function resolveViewFromUrl(): MedViewKey { const path = getHashPath(); return ROUTE_MAP[path] ?? 'med-landing'; } function navigate(view: MedViewKey) { window.location.hash = VIEW_TO_ROUTE[view]; } const App: React.FC = () => { const [currentView, setCurrentView] = useState(resolveViewFromUrl); useEffect(() => { const onHashChange = () => { setCurrentView(resolveViewFromUrl()); }; window.addEventListener('hashchange', onHashChange); return () => window.removeEventListener('hashchange', onHashChange); }, []); const handleNavigate = (view: string) => { const key = view as MedViewKey; setCurrentView(key); navigate(key); }; const renderView = () => { switch (currentView) { case 'med-landing': return ; case 'med-dashboard': return ; case 'med-pacientes': return
Módulo de Pacientes Médicos
Em Desenvolvimento
; case 'med-agenda': return
Agenda Médica Premium
Em Desenvolvimento
; case 'med-prontuarios': return
Sistema de Prontuários
Em Desenvolvimento
; case 'med-fidelidade': return
Gestão de Fidelidade
Em Desenvolvimento
; case 'med-financeiro': return
Financeiro & MRR
Em Desenvolvimento
; case 'medical-repasse': return
Repasse Médico
Em Desenvolvimento
; default: return ; } }; if (currentView === 'med-landing') { return ; } return ( {renderView()} ); }; export default App;