import React, { useState, useEffect } from 'react'; import { FaUser, FaUserPlus, FaCalendarAlt, FaCalendarCheck } from 'react-icons/fa'; import './style/Inicio.css'; function Inicio({ setCurrentPage }) { const [pacientes, setPacientes] = useState([]); const [agendamentos, setAgendamentos] = useState([]); const [errorMessage, setErrorMessage] = useState(""); const [fieldErrors, setFieldErrors] = useState({}); useEffect(() => { const fetchPacientes = async () => { try { const res = await fetch("https://mock.apidog.com/m1/1053378-0-default/pacientes"); if (!response.ok) { const errorData = await response.json(); setErrorMessage(errorData.message || "Erro desconhecido"); if (errorData.details) { setFieldErrors(errorData.details); } return; } const data = await res.json(); setPacientes(data.data); setErrorMessage(""); setFieldErrors({}); } catch (error) { console.error("Erro ao buscar pacientes:", error); setErrorMessage("Falha na comunicação com o servidor"); } }; const fetchAgendamentos = async () => { try { const res = await fetch(); if (!response.ok) { const errorData = await response.json(); setErrorMessage(errorData.message || "Erro desconhecido"); if (errorData.details) { setFieldErrors(errorData.details); } return; } const data = await res.json(); setAgendamentos(data.data); } catch (error) { console.error("Erro ao buscar agendamentos:", error); setErrorMessage("Falha na comunicação com o servidor"); } }; fetchPacientes(); fetchAgendamentos(); }, []); const totalPacientes = pacientes.length; const novosEsseMes = pacientes.filter(p => p.createdAt && new Date(p.createdAt).getMonth() === new Date().getMonth()).length; const hoje = new Date(); const agendamentosDoDia = agendamentos.filter( a => a.data && new Date(a.data).getDate() === hoje.getDate() ); const agendamentosHoje = agendamentosDoDia.length; return (

Bem-vindo ao MediConnect



{errorMessage && (
{errorMessage}
)} {/* Mensagens de erro específicas */} {Object.keys(fieldErrors).length > 0 && (
{Object.entries(fieldErrors).map(([campo, mensagens]) => (
{campo}:
    {mensagens.map((msg, idx) => (
  • {msg}
  • ))}
))}
)}
TOTAL DE PACIENTES {totalPacientes}
NOVOS ESTE MÊS {novosEsseMes}
AGENDAMENTOS HOJE {agendamentosHoje}
PENDÊNCIAS 0

Ações Rápidas

setCurrentPage('form-layout')}>
Novo Paciente Cadastrar um novo paciente
setCurrentPage('table')}>
Lista de Pacientes Ver todos os pacientes
setCurrentPage('agendamento')}>
Agendamentos Gerenciar consultas

Próximos Agendamentos

{agendamentosHoje > 0 ? (
{agendamentosDoDia.map(agendamento => (

{agendamento.nomePaciente}

{new Date(agendamento.data).toLocaleTimeString()}

))}
) : (

Nenhum agendamento para hoje

)}
); } export default Inicio;