diff --git a/src/pages/profile/section/components/ConfigItem.tsx b/src/pages/profile/section/components/ConfigItem.tsx
index 7de72f3..2bc8248 100644
--- a/src/pages/profile/section/components/ConfigItem.tsx
+++ b/src/pages/profile/section/components/ConfigItem.tsx
@@ -146,6 +146,7 @@ const ConfigItem = ({
dnsRegistrationExpired={dnsRegistrationExpired}
dnsExpiresAt={dnsExpiresAt}
canRenew={canRenew}
+ categoryId={categoryId}
/>
)}
diff --git a/src/pages/profile/section/components/ModalDnsConfig.tsx b/src/pages/profile/section/components/ModalDnsConfig.tsx
index 7abc76a..93432d5 100644
--- a/src/pages/profile/section/components/ModalDnsConfig.tsx
+++ b/src/pages/profile/section/components/ModalDnsConfig.tsx
@@ -1,11 +1,13 @@
import { useState } from "react";
import toast from "react-hot-toast";
-import { IoCopyOutline, IoWifiOutline } from "react-icons/io5";
+import { IoCopyOutline, IoSchoolOutline, IoWifiOutline } from "react-icons/io5";
import { MdOutlineDns } from "react-icons/md";
import { FaBolt } from "react-icons/fa6";
import { BsShieldExclamation } from "react-icons/bs";
import { useMutation } from "@tanstack/react-query";
import { AxiosError } from "axios";
+import { useDispatch } from "react-redux";
+import { useNavigate } from "react-router-dom";
import MuiModal from "../../../../common/modal";
import Button from "../../../../components/button";
import Input from "../../../../components/input";
@@ -13,6 +15,7 @@ import Alert from "../../../../components/alert/Alert";
import { ModalDnsConfigProps } from "../../../../types/props";
import useAxios from "../../../../hooks/useAxios";
import { queryClient } from "../../../../main";
+import { setCategoryId } from "../../../../redux/slices/categoryId";
const IPV4_ADDRESS_REGEX = /^(\d{1,3}\.){3}\d{1,3}$/;
@@ -50,11 +53,21 @@ const ModalDnsConfig = ({
dnsRegistrationExpired,
dnsExpiresAt,
canRenew,
+ categoryId,
}: ModalDnsConfigProps) => {
const axios = useAxios();
+ const dispatch = useDispatch();
+ const navigate = useNavigate();
const [ip, setIp] = useState("");
const [isDetecting, setIsDetecting] = useState(false);
+ const goToTutorial = () => {
+ if (!categoryId) return;
+ dispatch(setCategoryId(categoryId));
+ setIsOpen(false);
+ navigate("/tutorial");
+ };
+
const renewMutation = useMutation({
mutationKey: ["renewDnsOrder", orderId],
mutationFn: () => {
@@ -158,6 +171,15 @@ const ModalDnsConfig = ({
return (
+ {categoryId && (
+
+ )}
{dnsRegistrationExpired && (
مهلت این سرویس به پایان رسیده است. برای ادامه استفاده، سرویس را تمدید کنید
diff --git a/src/types/props.d.ts b/src/types/props.d.ts
index cc520be..d142c82 100644
--- a/src/types/props.d.ts
+++ b/src/types/props.d.ts
@@ -154,6 +154,7 @@ export interface ModalDnsConfigProps {
dnsRegistrationExpired?: boolean;
dnsExpiresAt?: string | null;
canRenew?: boolean;
+ categoryId?: number;
}
// نوع Item برای آیتمهای داخل Dropdown