import React, { useState } from 'react'; import { toast } from 'sonner'; import SettingsLayout from '../components/layout/SettingsLayout'; import PageHeader from '../components/ui/PageHeader'; import PaymentMethodHead, { type PaymentTab } from '../components/paymentMethods/PaymentMethodHead'; import BankAccountTable from '../components/paymentMethods/BankAccountTable'; import PosTable from '../components/paymentMethods/PosTable'; import BankAccountFormModal from '../components/paymentMethods/BankAccountFormModal'; import PosFormModal from '../components/paymentMethods/PosFormModal'; import { useBankAccounts, usePosDevices, useToggleBankAccountStatus, useTogglePosStatus, type BankAccount, type Pos, } from '../hooks/usePaymentMethods'; /** * صفحهٔ «مدیریت پرداخت» (/admin/my-financial) — پورت تب PaymentManagement از * clinic-pro-tauri. روش‌های پرداختِ کلینیک (حساب بانکی + کارت‌خوان) که بعداً از * فاکتور مراجعه‌کننده برای ثبت روش پرداخت یک سرویس ارجاع می‌شوند. */ function MyFinancialPageContent() { const [activeTab, setActiveTab] = useState('bank'); const [bankModalOpen, setBankModalOpen] = useState(false); const [posModalOpen, setPosModalOpen] = useState(false); const [editingBank, setEditingBank] = useState(null); const [editingPos, setEditingPos] = useState(null); const bankQuery = useBankAccounts(); const posQuery = usePosDevices(); const toggleBank = useToggleBankAccountStatus(); const togglePos = useTogglePosStatus(); const banks = bankQuery.data?.data ?? []; const posDevices = posQuery.data?.data ?? []; const openAdd = () => { if (activeTab === 'bank') { setEditingBank(null); setBankModalOpen(true); } else { setEditingPos(null); setPosModalOpen(true); } }; const onError = (e: unknown) => toast.error(e instanceof Error ? e.message : 'خطا در تغییر وضعیت'); return (
{activeTab === 'bank' ? ( toggleBank.mutate(uuid, { onError })} onEdit={(account) => { setEditingBank(account); setBankModalOpen(true); }} onAdd={openAdd} /> ) : ( togglePos.mutate(uuid, { onError })} onEdit={(pos) => { setEditingPos(pos); setPosModalOpen(true); }} onAdd={openAdd} /> )}
{ setBankModalOpen(false); setEditingBank(null); }} /> { setPosModalOpen(false); setEditingPos(null); }} />
); } export default function MyFinancialPage() { return ( ); }