import React, { useState, useMemo, useEffect } from 'react'; import dayjs from 'dayjs'; import CalendarComponent from '../components/AgendarConsulta/CalendarComponent.jsx'; import { useAuth } from '../components/utils/AuthProvider.js'; import TabelaAgendamentoDia from '../components/AgendarConsulta/TabelaAgendamentoDia'; dayjs.locale('pt-br'); const MedicoAgendamento = () => { const { getAuthorizationHeader, user } = useAuth(); const [currentDate, setCurrentDate] = useState(dayjs()); const [selectedDay, setSelectedDay] = useState(dayjs()); const [DictAgendamentosOrganizados, setAgendamentosOrganizados] = useState({}); const [showSpinner, setShowSpinner] = useState(true); const [modoVisualizacao, setModoVisualizacao] = useState('Dia'); const [quickJump, setQuickJump] = useState({ month: currentDate.month(), year: currentDate.year() }); const handleQuickJumpChange = (type, value) => { setQuickJump(prev => ({ ...prev, [type]: Number(value) })); }; const applyQuickJump = () => { let newDate = dayjs().year(quickJump.year).month(quickJump.month).date(1); setCurrentDate(newDate); setSelectedDay(newDate); }; const [selectedID, setSelectedId] = useState('0'); const [showDeleteModal, setShowDeleteModal] = useState(false); const [showConfirmModal, setShowConfirmModal] = useState(false); t useEffect(() => { const mockAgendamentos = { [dayjs().format('YYYY-MM-DD')]: [ { id: 1, scheduled_at: dayjs().set('hour', 10).set('minute', 0).toISOString(), paciente_nome: "Paciente Teste 1", medico_nome: "Dr. Mock", status: "agendado" }, { id: 2, scheduled_at: dayjs().set('hour', 11).set('minute', 30).toISOString(), paciente_nome: "Paciente Teste 2", medico_nome: "Dr. Mock", status: "confirmed" }, ], '2025-10-27': [ { id: 3, scheduled_at: '2025-10-27T19:30:00Z', paciente_nome: 'Davi Andrade', medico_nome: 'Dr. João', status: 'agendado' }, { id: 4, scheduled_at: '2025-10-27T20:00:00Z', paciente_nome: 'Davi Andrade', medico_nome: 'Dr. João', status: 'agendado' }, { id: 5, scheduled_at: '2025-10-27T21:30:00Z', paciente_nome: 'Davi Andrade', medico_nome: 'Dr. João', status: 'agendado' }, ] }; const today = dayjs(); const startOfMonth = today.startOf('month'); const nov11 = startOfMonth.add(10, 'day').format('YYYY-MM-DD'); mockAgendamentos[nov11] = [ { id: 6, scheduled_at: `${nov11}T10:30:00Z`, paciente_nome: 'Paciente C', medico_nome: 'Isaac Kauã', status: 'agendado' }, { id: 7, scheduled_at: `${nov11}T11:00:00Z`, paciente_nome: 'João Gustavo', medico_nome: 'João Gustavo', status: 'agendado' }, { id: 8, scheduled_at: `${nov11}T12:30:00Z`, paciente_nome: 'João Gustavo', medico_nome: 'João Gustavo', status: 'agendado' }, { id: 9, scheduled_at: `${nov11}T15:00:00Z`, paciente_nome: 'Pedro Abravanel', medico_nome: 'Fernando Prichowski', status: 'agendado' }, ]; setAgendamentosOrganizados(mockAgendamentos); setShowSpinner(false); }, []); const handleSelectSlot = (timeSlot, doctorId) => { alert(`Abrir tela de Nova Consulta para o dia ${selectedDay.format('DD/MM/YYYY')} às ${timeSlot} com o Médico ID: ${doctorId}`); }; const isMedico = true; const medicoLogadoID = user?.doctor_id || "ID_MEDICO_DEFAULT"; return (