Files
nobat724_front/components/dashboard/userAccount/sidebars/turns/Card.js
T
hamedandClaude Opus 4.8 8a87d9cf92 fix(dashboard): turns tab uses real appointment fields + empty state
The turns list/card read start_time, slot.time and doctor.specialty,
none of which exist on Appointment.toArray() (slot_start, doctor.name,
status). Use slot_start for the Jalali date/time, replace the specialty
column with a Persian status label, and show an empty state when there
are no appointments.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 19:39:12 +03:30

76 lines
2.9 KiB
JavaScript

import CircularLoading from "@/app/component/loading/Circular";
import TextLoading from "@/app/component/loading/Text";
import ArrowLeftCardD from "@/components/icons/ArrowLeftCardD";
import { Button } from "@mui/material";
import Image from "next/image";
import { convertTimestampToJalali, convertTimestampToTime } from "@/helper";
const STATUS_LABELS = {
pending: "در انتظار پرداخت",
confirmed: "تأیید شده",
completed: "انجام شده",
cancelled_by_user: "لغو شده",
cancelled_by_doctor: "لغو توسط پزشک",
expired: "منقضی شده",
no_show: "عدم مراجعه",
};
function Card({ data, loading, setIsTurnsDetails }) {
return (
<li className="shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] pb-[8px] bg-[#FFF] rounded-[8px]">
<div className="flex items-center justify-start gap-[8px] p-[12px]">
<div className="flex flex-col items-start justify-center gap-[8px]">
<TextLoading loading={loading} width={120} height={18}>
<p className="text-[#616161] text-[14px] font-medium">
{data.doctor?.name || "--"}
</p>
</TextLoading>
<TextLoading loading={loading} width={100} height={18}>
<p className="text-[#7E7E7E] text-[14px] font-normal">
{STATUS_LABELS[data.status] || data.status || "--"}
</p>
</TextLoading>
</div>
</div>
<ul className="w-full py-[8px] px-[12px] bg-[#FAFAFA] flex flex-col gap-[12px]">
<li className="flex items-center justify-between">
<TextLoading loading={loading} width={75} height={18}>
<p className="text-[#7E7E7E] text-[14px] font-normal">
تاریخ نوبت:
</p>
</TextLoading>
<TextLoading loading={loading} width={110} height={18}>
<p className="text-[#525252] text-[14px] font-medium">
{convertTimestampToJalali(data.slot_start)}
</p>
</TextLoading>
</li>
<li className="flex items-center justify-between">
<TextLoading loading={loading} width={65} height={18}>
<p className="text-[#7E7E7E] text-[14px] font-normal">ساعت نوبت:</p>
</TextLoading>
<TextLoading loading={loading} width={60} height={18}>
<p className="text-[#525252] text-[14px] font-medium">
{convertTimestampToTime(data.slot_start)}
</p>
</TextLoading>
</li>
</ul>
<div className="mt-[12px] flex items-center justify-end px-[12px]">
<TextLoading loading={loading} width={80} height={25}>
<Button
className="!flex !p-1 !items-center !justify-end !gap-[2px]"
onClick={() => setIsTurnsDetails(data)}
variant="text"
>
مشاهده
<ArrowLeftCardD />
</Button>
</TextLoading>
</div>
</li>
);
}
export default Card;