import { Dispatch, SetStateAction, useState } from "react"; import MuiModal from "../../../../common/modal"; import Button from "../../../../components/button"; import { IoCopy, IoDownload } from "react-icons/io5"; import Alert from "../../../../components/alert/Alert"; import ProgressSpace from "../../../../components/progressSpace"; import toast from "react-hot-toast"; import { useNavigate } from "react-router-dom"; import { useDispatch } from "react-redux"; import { setCategoryId } from "../../../../redux/slices/categoryId"; import Input from "../../../../components/input"; import LoaderSpaceConfig from "./LoaderSpaceConfig"; import { AxiosError } from "axios"; import { downloadWireGuardConfig } from "../../utils/wireguardConfig"; const ModalConfigDetails = ({ isOpen, setIsOpen, isDisabled, dateBuy, orderId, nameConfig, isShowTraffic, textCopy, maxTraffic, traffic, type, username, password, wireguardUsername, categoryId, isLoadSpaceConfig, error, useMaxTraffic, }: { isOpen: boolean; setIsOpen: Dispatch>; isDisabled: boolean; dateBuy: string; orderId?: number; nameConfig: string; isShowTraffic: boolean; textCopy: string; maxTraffic: number | "unlimited"; traffic: number; type: string | null; username: string; password: string; wireguardUsername?: string | null; categoryId: number; isLoadSpaceConfig: boolean; error: AxiosError | Error | null; useMaxTraffic: boolean; }) => { const navigate = useNavigate(); const dispatch = useDispatch(); const [isCopyError, setIsCopyError] = useState(false); const configType = type ?? ""; const isWireGuard = configType.toLowerCase() === "wireguard"; const copyToClipboard = async (textToCopy: string) => { try { await navigator.clipboard.writeText(textToCopy); toast.success("متن با موفقیت کپی شد!"); } catch (err) { setIsCopyError(true); toast.error(`Failed to copy: , ${err}`); } }; const downloadWireGuardFile = () => { if (!textCopy) { toast.error("کانفیگ وایرگارد موجود نیست"); return; } downloadWireGuardConfig(textCopy, wireguardUsername); toast.success("فایل کانفیگ دانلود شد"); }; return ( {isDisabled && {nameConfig} غیر فعال است }

تاریخ خرید : {dateBuy} {orderId && ( کد سفارش : #{orderId} )}

{isDisabled || useMaxTraffic ? (
{/* */}
{useMaxTraffic ? (

مشترک گرامی کانفیگ شما به دلیل اتمام حجم غیر فعال است

) : isDisabled && (

مشترک گرامی کانفیگ شما به دلیل پایان اعتبار غیر فعال است

)}
) : ( <> {configType === "gaming" ? ( <> {isCopyError ? (

کاربر گرامی کپی خودکار موفقیت آمیز نبود لطفا به صورت دستی از زیر انتخاب کرده و کپی کنید

) : ( <> )} ) : ( <> {isCopyError ? ( <>

کاربر گرامی کپی خودکار موفقیت آمیز نبود لطفا به صورت دستی از زیر انتخاب کرده و کپی کنید

) : ( <> {isWireGuard ? ( ) : ( )} )} )} )}
{!isDisabled && isShowTraffic && (
{isLoadSpaceConfig ? (
) : error ? (
{" "} خطایی رخ داد : {error?.message}
) : ( )}
)}
); }; export default ModalConfigDetails;