import { Link } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { ClipboardDocumentListIcon } from '@heroicons/react/24/outline'; import { api } from '../lib/api'; import type { ApiResponse } from '../lib/api'; import PageHeader from '../components/ui/PageHeader'; import StatusBadge from '../components/ui/StatusBadge'; import { formatDate } from '../lib/utils'; import type { StaffTreatmentSession } from '../types'; /** * «جلسات امروز من» — نقطهٔ ورود پرسنل به کار روز. * * فهرست از نوبتِ متصل به جلسه می‌آید نه از سررسید تخمینی: کارِ امروز چیزی است که * برایش وقت گرفته شده. */ export default function StaffTreatmentSessionsPage() { const { data, isLoading } = useQuery({ queryKey: ['staff-treatment-sessions'], queryFn: () => api.get>('/api/v1/dashboard/staff/treatment-sessions'), staleTime: 30_000, }); const sessions = data?.data ?? []; return ( <> {isLoading ? (
در حال بارگذاری...
) : sessions.length === 0 ? (
امروز جلسه‌ای برای شما ثبت نشده است
) : (
{sessions.map((s) => { const settled = s.areas?.filter((a) => a.status === 'completed' || a.status === 'skipped').length ?? 0; const total = s.areas?.length ?? 0; return (
{s.service_name} جلسهٔ {s.session_number} از {s.total_sessions}
{s.appointment && ساعت {new Date(s.appointment.slot_start * 1000).toLocaleTimeString('fa-IR', { hour: '2-digit', minute: '2-digit' })}} {s.appointment && {formatDate(s.appointment.slot_start)}} {total > 0 && {settled} از {total} ناحیه انجام شده}
مشاهده جزئیات و انجام جلسه
); })}
)} ); }