import React from 'react'; import { PlusIcon } from '@heroicons/react/24/outline'; import { formatNumber } from '../../lib/utils'; import StatusBadge from '../ui/StatusBadge'; import type { Appointment, ClinicResource } from '../../types'; function hhmm(ts: number): string { const d = new Date(ts * 1000); return `${String(d.getHours()).padStart(2, '0')}:${String(d.getMinutes()).padStart(2, '0')}`; } /** * نمای روزِ یک منبع. * * عمداً تایملاین اسلاتی نیست: منبع برنامهٔ هفتگیِ اسلاتشده ندارد، تقویمش از مدتِ * سرویسها و اشغالِ واقعی ساخته میشود. نشان دادن شبکهٔ اسلات برای منبع یعنی وعدهٔ * زمانهایی که موتور رزرو اصلاً نمیشناسد. * * پس فقط دو چیز: آنچه امروز روی این منبع رزرو شده، و یک راه برای افزودن نوبتِ سرویسی. */ export default function ResourceDayPanel({ resource, appointments, loading, canCreate, onBook, onView, }: { resource: ClinicResource; appointments: Appointment[]; loading: boolean; canCreate: boolean; onBook: () => void; onView: (appointment: Appointment) => void; }) { const rows = [...appointments].sort((a, b) => a.slot_start - b.slot_start); return (
برای «{resource.name}» در این روز نوبتی ثبت نشده است.
) : ({formatNumber(rows.length)} نوبت روی این منبع در این روز
)}