|
@@ -1,24 +1,52 @@
|
|
|
"use client";
|
|
|
+import { useRouter } from "@/i18n/routing";
|
|
|
import { Mask } from "antd-mobile";
|
|
|
+import clsx from "clsx";
|
|
|
import React from "react";
|
|
|
import dialogManage from "../manager";
|
|
|
+import styles from "./index.module.scss";
|
|
|
|
|
|
const ImgDialog = () => {
|
|
|
const keyName = "ImgDialog"; // 确保这个keyName是唯一的,与其他地方的keyName不同,以避免冲突
|
|
|
+ const [data, setData] = React.useState<any>({});
|
|
|
+ const [visible, setVisible] = React.useState<boolean>(false); // 初始值为false,不显示对话框
|
|
|
|
|
|
+ const router = useRouter();
|
|
|
+
|
|
|
+ const handler = {
|
|
|
+ key: keyName,
|
|
|
+ show(data: any, idx: number) {
|
|
|
+ if (!data) return "close";
|
|
|
+ setData(data);
|
|
|
+ setVisible(true);
|
|
|
+ },
|
|
|
+ hide() {
|
|
|
+ setVisible(false);
|
|
|
+ },
|
|
|
+ };
|
|
|
React.useEffect(() => {
|
|
|
- dialogManage.registerDialog({
|
|
|
- key: keyName,
|
|
|
- show(data: any, idx: number) {
|
|
|
- console.log(data, idx);
|
|
|
- },
|
|
|
- hide() {},
|
|
|
- });
|
|
|
- });
|
|
|
+ dialogManage.registerDialog(handler);
|
|
|
+ // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ const close = () => {
|
|
|
+ dialogManage.hideDialog(keyName);
|
|
|
+ };
|
|
|
|
|
|
return (
|
|
|
<>
|
|
|
- <Mask visible={false}></Mask>
|
|
|
+ <Mask visible={visible} onMaskClick={close}>
|
|
|
+ <div className={styles.imgDialog}>
|
|
|
+ <div className={styles.imgDialogContainer}>
|
|
|
+ <img src={data.imgUrl} alt="" onClick={() => router.push("/deposit")} />
|
|
|
+ <div className={clsx(styles.close)} onClick={close}>
|
|
|
+ <i
|
|
|
+ className={clsx("iconfont icon-guanbi relative z-10 text-[.14rem]")}
|
|
|
+ ></i>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Mask>
|
|
|
</>
|
|
|
);
|
|
|
};
|