import { useState } from 'react'; import { useParams, useNavigate, useLocation } from 'react-router'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; import { withdrawalApi } from '../api/withdrawals'; import { AdminBackButton } from '../components/admin'; import { useCurrency } from '../hooks/useCurrency'; export default function AdminWithdrawalReject() { const { t } = useTranslation(); const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); const location = useLocation(); const queryClient = useQueryClient(); const { formatWithCurrency } = useCurrency(); const [comment, setComment] = useState(''); // Try to get withdrawal summary from navigate state const passedDetail = location.state as { amountKopeks?: number; username?: string; firstName?: string; } | null; const rejectMutation = useMutation({ mutationFn: (rejectComment: string) => withdrawalApi.reject(Number(id), rejectComment || undefined), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['admin-withdrawal-detail', id] }); queryClient.invalidateQueries({ queryKey: ['admin-withdrawals'] }); navigate(`/admin/withdrawals/${id}`); }, }); const displayName = passedDetail?.username ? `@${passedDetail.username}` : passedDetail?.firstName || ''; return (
{/* Header */}

{t('admin.withdrawals.detail.rejectTitle')}

{passedDetail?.amountKopeks != null && passedDetail.amountKopeks > 0 && (

#{id} {'\u2022'} {formatWithCurrency(passedDetail.amountKopeks / 100, 0)} {displayName && ` \u2022 ${displayName}`}

)}

{t('admin.withdrawals.detail.rejectDescription')}