import { useState } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { api } from '../lib/api'; import type { ApiResponse } from '../lib/api'; import type { PatientRecord } from '../types'; import type { SessionCardData } from '../components/SessionServiceCard'; import SessionStepper from '../components/SessionStepper'; import PaymentStep from '../components/session/PaymentStep'; import DetailsStep from '../components/session/DetailsStep'; import { ArrowLeftPH, ArrowLeftD, CloseModalD } from '../components/icons/FilesServiceIcons'; /** * تکمیل پرداخت مراجعه — پورت صفحه‌ی tauri /files/create-service در حالت payment: * استپر دوگامی «پرداخت ← جزییات» با تخفیف تسویه، پرداخت چندتکه و تاریخ پرداخت. * بدنه‌ی گام‌ها در components/session/{PaymentStep,DetailsStep} مشترک با NewSessionPage است. */ export default function SessionPaymentPage() { const { recordUuid = '', sessionUuid = '' } = useParams(); const nav = useNavigate(); const steps = ['پرداخت', 'جزییات']; const [activeStep, setActiveStep] = useState(0); const recordQ = useQuery>({ queryKey: ['patient-detail', recordUuid], queryFn: () => api.get(`/api/v1/patient/${recordUuid}`), enabled: !!recordUuid, }); const record = recordQ.data?.data as PatientRecord | undefined; const patientName = record?.user_name || record?.profile?.full_name || '—'; const sessionsQ = useQuery>({ queryKey: ['patient-sessions', recordUuid], queryFn: () => api.get(`/api/v1/patient/${recordUuid}/sessions`), enabled: !!recordUuid, }); const session = (sessionsQ.data?.data ?? []).find((s) => s.uuid === sessionUuid); const walletQ = useQuery>({ queryKey: ['patient-wallet', recordUuid], queryFn: () => api.get(`/api/v1/patient/${recordUuid}/wallet`), enabled: !!recordUuid, }); const walletBalance = (walletQ.data?.data as any)?.balance_rials ?? 0; const finish = () => nav(`/admin/patients/${recordUuid}?tab=services`); if (sessionsQ.isLoading) { return
در حال بارگذاری...
; } if (!session) { return
مراجعه یافت نشد
; } return (
{/* breadcrumb — tauri AddService header */}
nav(-1)} className="bg-white dark:bg-[#222433]" style={{ display: 'flex', alignItems: 'center', gap: 4, padding: '6px 8px', borderRadius: 12, cursor: 'pointer' }} > بازگشت
پرونده {patientName}
{/* card — tauri width 748 centered */}
{activeStep === 0 ? ( setActiveStep(1)} onCancel={() => nav(-1)} /> ) : ( setActiveStep(0)} onFinish={finish} /> )}
); }