"use client"; import React, { useState } from "react"; import { motion, AnimatePresence } from "motion/react"; import { X, CreditCard, Sparkles, CheckCircle2, TrendingUp, DollarSign } from "lucide-react"; import { toPersian, cn } from "../lib/utils"; import { toast } from "sonner"; interface TopUpModalProps { isOpen: boolean; onClose: () => void; onConfirm: (amount: number) => void; } const PRESET_AMOUNTS = [ { label: "۵۰۰,۰۰۰ تومان", value: 500000 }, { label: "۱,۰۰۰,۰۰۰ تومان", value: 1000000 }, { label: "۲,۰۰۰,۰۰۰ تومان", value: 2000000 }, ]; export default function TopUpModal({ isOpen, onClose, onConfirm }: TopUpModalProps) { const [amount, setAmount] = useState(""); const [selectedPreset, setSelectedPreset] = useState(null); const [loading, setLoading] = useState(false); const handlePresetSelect = (val: number) => { setSelectedPreset(val); setAmount(val.toString()); }; const handleInputChange = (e: React.ChangeEvent) => { const val = e.target.value.replace(/,/g, ''); if (/^\d*$/.test(val)) { setAmount(val); setSelectedPreset(null); } }; const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); const finalAmount = parseInt(amount); if (isNaN(finalAmount) || finalAmount < 10000) { toast.error("حداقل مبلغ شارژ ۱۰,۰۰۰ تومان است"); return; } setLoading(true); // Simulate gateway connection setTimeout(() => { onConfirm(finalAmount); toast.success(`مبلغ ${toPersian(finalAmount.toLocaleString())} تومان به کیف پول شما اضافه شد.`); setLoading(false); onClose(); setAmount(""); setSelectedPreset(null); }, 2000); }; return ( {isOpen && (

شارژ سریع کیف پول

{PRESET_AMOUNTS.map((preset) => ( ))}
{amount && (
تومان
)}

با شارژ کیف پول، از هدیه‌های هوشمند کانی‌نو و اولویت در ارسال سفارش‌ها بهره‌مند شوید.

)}
); }