"use client"; import React, { useState } from "react"; import { motion, AnimatePresence } from "motion/react"; import { X, CreditCard, TrendingUp, ShieldCheck } from "lucide-react"; import { toPersian, cn } from "../lib/utils"; import { toast } from "sonner"; import { useUserStore } from "../lib/store/userStore"; import { useSettingsStore } from "../lib/store/settingsStore"; import api from "../lib/services/api"; 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 }: TopUpModalProps) { const [amount, setAmount] = useState(""); const [selectedPreset, setSelectedPreset] = useState(null); const [loading, setLoading] = useState(false); const isCardToCardEnabled = useSettingsStore((state) => state.getBoolean("payment_card_to_card_enabled", 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 = async (e: React.FormEvent) => { e.preventDefault(); if (!useUserStore.getState().isLoggedIn) { toast.error("جهت افزایش موجودی کیف پول لطفاً ابتدا وارد حساب کاربری خود شوید."); return; } const finalAmount = parseInt(amount); if (isNaN(finalAmount) || finalAmount < 10000) { toast.error("حداقل مبلغ شارژ ۱۰,۰۰۰ تومان است"); return; } setLoading(true); try { const res = await api.post("/payment/zibal/wallet/initiate", { amount: finalAmount, }); if (res.data?.paymentUrl) { toast.success("در حال انتقال امن به درگاه پرداخت زیبال..."); window.location.href = res.data.paymentUrl; } else { toast.error("خطا در ایجاد تراکنش درگاه پرداخت زیبال"); setLoading(false); } } catch (err: unknown) { const gErr = err as { response?: { data?: { message?: string } }; message?: string }; const errMsg = gErr.response?.data?.message || gErr.message || "خطا در برقراری ارتباط با درگاه پرداخت"; toast.error(errMsg); setLoading(false); } }; return ( {isOpen && (

شارژ آنلاین کیف پول

{PRESET_AMOUNTS.map((preset) => ( ))}
{amount && (
تومان
)}
{isCardToCardEnabled ? (
اطلاعات کارت جهت واریز کارت‌به‌کارت:
کارت: ۶۲۱۹-۸۶۱۹-۷۴۰۱-۲۰۷۱ (بانک سامان)
شبا: IR-65 0560 6118 2800 5725 1015 01
به نام: پارسا آقایی

پس از واریز، فیش توسط تیم پشتیبانی بررسی و تایید خواهد شد.

) : (
پرداخت امن از طریق درگاه مستقیم بانکی زیبال و اتصال به کلیه کارت‌های عضو شتاب
)}
)}
); }