import React from 'react'; import { Wallet, Loader2 } from 'lucide-react'; import { PageContainer, PageTitle } from '@/components/ui/Typography'; import { LoadingSpinner } from '@/components/ui/LoadingSpinner'; import { useWalletStatus, useUpdateWalletStatus } from '../core/_hooks'; import { WalletStatus, WALLET_LABELS } from '../core/_models'; const formatDate = (dateString: string) => { return new Date(dateString).toLocaleDateString('fa-IR', { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', }); }; const ToggleSwitch = ({ checked, onChange, disabled, }: { checked: boolean; onChange: (checked: boolean) => void; disabled?: boolean; }) => { return ( onChange(e.target.checked)} disabled={disabled} className="sr-only" /> ); }; const WalletListPage = () => { const { data, isLoading, error } = useWalletStatus(); const { mutate: updateStatus, isPending } = useUpdateWalletStatus(); const handleToggle = (wallet: WalletStatus, newStatus: boolean) => { updateStatus({ wallet_type: wallet.wallet_type, status: newStatus, }); }; if (isLoading) { return ( ); } if (error) { return ( خطا در بارگذاری وضعیت کیفهای پول ); } const statuses = data?.statuses || []; return ( مدیریت کیف پول فعال یا غیرفعال کردن کیفهای پول {statuses.map((wallet) => ( {WALLET_LABELS[wallet.wallet_type]} {wallet.is_active ? 'فعال' : 'غیرفعال'} آخرین بهروزرسانی: {formatDate(wallet.updated_at)} {isPending ? ( ) : ( handleToggle(wallet, checked)} /> )} ))} ); }; export default WalletListPage;
خطا در بارگذاری وضعیت کیفهای پول
فعال یا غیرفعال کردن کیفهای پول
آخرین بهروزرسانی: {formatDate(wallet.updated_at)}