import React from 'react'; import { useQuery } from '@tanstack/react-query'; import api from '../api/axios'; import { FaUserMd, FaUsers, FaCalendarAlt } from 'react-icons/fa'; // ฟังก์ชันสำหรับเรียก API แต่ละตัว const fetchDoctorsCount = async () => { const { data } = await api.get('/doctors'); return data.length; // นับจำนวนแพทย์ }; const fetchPatientsCount = async () => { const { data } = await api.get('/patients'); return data.length; // นับจำนวนผู้ป่วย }; const fetchConsultations = async () => { const { data } = await api.get('/consultations'); // คุณอาจต้องกรองข้อมูลเพื่อหาจำนวนนัดหมายที่กำลังจะมาถึง // เช่น data.filter(c => new Date(c.date) > new Date()).length return data.length; // นับจำนวนการนัดหมายทั้งหมด }; export default function DashboardPage() { // ใช้ useQuery แยกกันสำหรับแต่ละข้อมูล const { data: doctorsCount, isLoading: isDoctorsLoading, isError: isDoctorsError } = useQuery({ queryKey: ['doctorsCount'], queryFn: fetchDoctorsCount, }); const { data: patientsCount, isLoading: isPatientsLoading, isError: isPatientsError } = useQuery({ queryKey: ['patientsCount'], queryFn: fetchPatientsCount, }); const { data: consultationsCount, isLoading: isConsultationsLoading, isError: isConsultationsError } = useQuery({ queryKey: ['consultationsCount'], queryFn: fetchConsultations, }); if (isDoctorsLoading || isPatientsLoading || isConsultationsLoading) { return
กำลังโหลดข้อมูล...
; } if (isDoctorsError || isPatientsError || isConsultationsError) { return
เกิดข้อผิดพลาดในการโหลดข้อมูล
; } return (

ภาพรวมระบบ

{/* Card แสดงจำนวนแพทย์ */}
จำนวนแพทย์
{doctorsCount}
{/* Card แสดงจำนวนผู้ป่วย */}
จำนวนผู้ป่วย
{patientsCount}
{/* Card แสดงจำนวนนัดหมาย */}
จำนวนนัดหมาย
{consultationsCount}
); }