From 623999d9d97a57523fd6e988ec98189ee9db94ae Mon Sep 17 00:00:00 2001 From: yezian Date: Mon, 17 Mar 2025 17:59:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=94=AF=E4=BB=98=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/success/page.jsx | 85 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 app/success/page.jsx diff --git a/app/success/page.jsx b/app/success/page.jsx new file mode 100644 index 0000000..8151b25 --- /dev/null +++ b/app/success/page.jsx @@ -0,0 +1,85 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { FiArrowLeft, FiCheckCircle } from "react-icons/fi"; +import toast from "react-hot-toast"; + +export default function SuccessPage() { + const [closeAttempted, setCloseAttempted] = useState(false); + + // 页面加载时的动画效果 + useEffect(() => { + const timer = setTimeout(() => { + const successIcon = document.getElementById("success-icon"); + if (successIcon) { + successIcon.classList.add("scale-100"); + successIcon.classList.remove("scale-0"); + } + }, 100); + + return () => clearTimeout(timer); + }, []); + + // 尝试关闭页面 + const handleClose = () => { + try { + window.close(); + + // 设置一个短暂的延迟,检查页面是否仍然打开 + setTimeout(() => { + // 如果页面仍然打开,说明关闭失败 + if (document.visibilityState !== "hidden") { + setCloseAttempted(true); + // 显示toast提示 + toast.error("请手动关闭此页面并返回应用", { + icon: "👋", + duration: 5000, + style: { + background: "#333", + color: "#fff", + borderRadius: "8px", + }, + }); + } + }, 300); + } catch (error) { + console.error("关闭页面失败:", error); + setCloseAttempted(true); + toast.error("请手动关闭此页面返回应用"); + } + }; + + return ( +
+
+
+
+ +
+ +

+ 支付成功 +

+ +

+ 请关闭当前页面返回应用 +

+ + +
+
+
+ ); +}