diff --git a/app/payment/[uuid]/page.js b/app/payment/[uuid]/page.js index 45d793e..a49752d 100644 --- a/app/payment/[uuid]/page.js +++ b/app/payment/[uuid]/page.js @@ -1,7 +1,7 @@ "use client"; import { useEffect, useState } from "react"; -import { useParams, useRouter } from "next/navigation"; +import { useParams, useRouter, useSearchParams } from "next/navigation"; import { request } from "@/services/response"; import { formatToman } from "@/lib/money"; import Cookies from "js-cookie"; @@ -10,6 +10,7 @@ import Layout from "@/components/layout"; export default function PaymentDetailsPage() { const params = useParams(); const router = useRouter(); + const searchParams = useSearchParams(); const [payment, setPayment] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); @@ -54,6 +55,15 @@ export default function PaymentDetailsPage() { } }, [params.uuid, router]); + // پس از دیدن جزئیاتِ پرداختِ موفق، خودکار به تاریخچهٔ نوبت‌ها (تب تأییدشده) برو. + useEffect(() => { + const isSuccess = searchParams.get("status") === "success" || payment?.status === "success"; + if (isSuccess) { + const t = setTimeout(() => router.push("/dashboard?sidebar=1"), 4000); + return () => clearTimeout(t); + } + }, [payment, searchParams, router]); + const getStatusLabel = (status) => { const statusMap = { pending: "در انتظار پرداخت", @@ -202,7 +212,7 @@ export default function PaymentDetailsPage() { {/* دکمه‌ها */}
{["pending", "failed", "canceled"].includes(payment.status) && - payment.appointment_uuid ? ( + payment.appointment_uuid ? (
diff --git a/app/payment/result/page.js b/app/payment/result/page.js index c962e8f..63a4b2f 100644 --- a/app/payment/result/page.js +++ b/app/payment/result/page.js @@ -15,7 +15,7 @@ function PaymentResultRedirect() { const q = status ? `?status=${status}` : ""; router.replace(`/payment/${paymentUuid}${q}`); } else { - router.replace("/dashboard?sidebar=2"); + router.replace("/dashboard?sidebar=1"); } }, [searchParams, router]); diff --git a/components/dashboard/userAccount/sidebars/turns/Head.js b/components/dashboard/userAccount/sidebars/turns/Head.js index 541a47b..11f828a 100644 --- a/components/dashboard/userAccount/sidebars/turns/Head.js +++ b/components/dashboard/userAccount/sidebars/turns/Head.js @@ -1,22 +1,22 @@ import Tabs from "@/app/component/Tabs"; const listTab = [ - "همه", - "در انتظار پرداخت", "تأیید شده", + "در انتظار پرداخت", "انجام شده", "لغو شده", "منقضی شده", + "همه", ]; function Head({ status, setStatus }) { const statusMap = { - 0: undefined, // all + 0: "confirmed", 1: "pending", - 2: "confirmed", - 3: "completed", - 4: "cancelled_by_user", - 5: "expired", + 2: "completed", + 3: "cancelled_by_user", + 4: "expired", + 5: undefined, // all }; const handleChange = (e, value) => { diff --git a/components/dashboard/userAccount/sidebars/turns/index.js b/components/dashboard/userAccount/sidebars/turns/index.js index 8cadd1f..851cd25 100644 --- a/components/dashboard/userAccount/sidebars/turns/index.js +++ b/components/dashboard/userAccount/sidebars/turns/index.js @@ -8,7 +8,7 @@ import Cookies from "js-cookie"; import IsTurnsDetails from "./isTurnsDetails"; function Turns({ user, setIsTurnsDetails, loading }) { - const [status, setStatus] = useState(undefined); + const [status, setStatus] = useState("confirmed"); const [appointments, setAppointments] = useState([]); const [isLoading, setIsLoading] = useState(true); const [page, setPage] = useState(1);