import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { MagnifyingGlassIcon, EyeIcon, BanknotesIcon, UserPlusIcon } from '@heroicons/react/24/outline'; import PageHeader from '../components/ui/PageHeader'; import Pagination from '../components/ui/Pagination'; import PersianDateInput from '../components/ui/PersianDateInput'; import { formatRial, formatDate, formatNumber, toDate } from '../lib/utils'; import { usePayments, MY_PAYMENTS_LIMIT, type PaymentRow, } from '../hooks/useMyPayments'; const EMPTY: PaymentRow[] = []; /** HH:MM (Persian digits) from a unix timestamp. */ function formatTime(unix: number): string { return new Intl.DateTimeFormat('fa-IR', { hour: '2-digit', minute: '2-digit' }).format(new Date(unix * 1000)); } /** unix start-of-day for `from`, end-of-day for `to`, from a gregorian Y-m-d. */ function dayBound(value: string, end: boolean): number | undefined { const d = toDate(value); if (!d) return undefined; const secs = Math.floor(d.setHours(0, 0, 0, 0) / 1000); return end ? secs + 86399 : secs; } function Avatar({ name }: { name: string | null }) { return (
| ردیف | نام بیمار | کد ملی | تاریخ | مبلغ پرداختشده | عملیات |
|---|---|---|---|---|---|
| {formatNumber((page - 1) * MY_PAYMENTS_LIMIT + i + 1)} |
|
{row.national_code ?? '—'} | {formatDate(row.issued_at)} - {formatTime(row.issued_at)} | {formatRial(row.amount_rials)} |