/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { useState, useEffect } from 'react' import { Loader2 } from 'lucide-react' import { useTranslation } from 'react-i18next' import { formatQuota } from '@/lib/format' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { QUOTA_PER_DOLLAR } from '../../constants' interface TransferDialogProps { open: boolean onOpenChange: (open: boolean) => void onConfirm: (amount: number) => Promise availableQuota: number transferring: boolean } export function TransferDialog({ open, onOpenChange, onConfirm, availableQuota, transferring, }: TransferDialogProps) { const { t } = useTranslation() const [amount, setAmount] = useState(QUOTA_PER_DOLLAR) useEffect(() => { if (open) { // eslint-disable-next-line react-hooks/set-state-in-effect setAmount(QUOTA_PER_DOLLAR) } }, [open]) const handleConfirm = async () => { const success = await onConfirm(amount) if (success) { onOpenChange(false) } } return ( {t('Transfer Rewards')} {t('Move affiliate rewards to your main balance')}
{formatQuota(availableQuota)}
setAmount(Number(e.target.value))} min={QUOTA_PER_DOLLAR} max={availableQuota} step={QUOTA_PER_DOLLAR} className='font-mono text-lg' />

{t('Minimum:')} {formatQuota(QUOTA_PER_DOLLAR)}

) }