|
@@ -1,28 +1,57 @@
|
|
|
"use client";
|
|
|
-import { useWalletStore } from "@/stores/useWalletStore";
|
|
|
+import { getUserMoneyApi } from "@/api/user";
|
|
|
+import { useRequest } from "ahooks";
|
|
|
import { Mask } from "antd-mobile";
|
|
|
import { motion } from "framer-motion";
|
|
|
-import { useEffect, useState } from "react";
|
|
|
-import styles from "./style.module.scss";
|
|
|
+import { useState } from "react";
|
|
|
+import styles from "./activityMask.module.scss";
|
|
|
const ActivityMask = () => {
|
|
|
- const [visible, setVisible] = useState<boolean>(false);
|
|
|
+ const [count, setCount] = useState<number>(0);
|
|
|
|
|
|
- const wallet = useWalletStore((state) => state.wallet);
|
|
|
- useEffect(() => {
|
|
|
- if (wallet?.notice?.lose_score > 0) {
|
|
|
- setVisible(true);
|
|
|
- }
|
|
|
- }, [wallet?.notice?.lose_score]);
|
|
|
+ // const wallet = useWalletStore((state) => state.wallet);
|
|
|
+ // useEffect(() => {
|
|
|
+ // if (wallet?.notice?.lose_score > 0) {
|
|
|
+ // setVisible(true);
|
|
|
+ // }
|
|
|
+ // }, [wallet?.notice?.lose_score]);
|
|
|
+
|
|
|
+ const { run, cancel } = useRequest(getUserMoneyApi, {
|
|
|
+ pollingInterval: 5000,
|
|
|
+ pollingWhenHidden: true,
|
|
|
+ pollingErrorRetryCount: 3,
|
|
|
+ staleTime: 5000,
|
|
|
+ onError: (error) => {},
|
|
|
+ onSuccess: (res) => {
|
|
|
+ if (res.data.notice.lose_score > 0) {
|
|
|
+ setCount(res.data.notice.lose_score);
|
|
|
+ cancel();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
|
|
|
return (
|
|
|
- <Mask visible={visible} destroyOnClose={true} getContainer={null}>
|
|
|
+ <Mask
|
|
|
+ visible={!!count}
|
|
|
+ destroyOnClose={true}
|
|
|
+ getContainer={null}
|
|
|
+ onMaskClick={() => {
|
|
|
+ setCount(0);
|
|
|
+ run();
|
|
|
+ }}
|
|
|
+ >
|
|
|
{/*<div*/}
|
|
|
{/* className={"absolute right-[0.2083rem] top-[20%] z-50"}*/}
|
|
|
{/* onClick={() => setVisible(false)}*/}
|
|
|
{/*>*/}
|
|
|
{/* <span className={"iconfont icon-guanbi"}></span>*/}
|
|
|
{/*</div>*/}
|
|
|
- <div className={"absolute top-[18%] z-50 w-[100%]"} onClick={() => setVisible(false)}>
|
|
|
+ <div
|
|
|
+ className={"absolute top-[18%] z-50 w-[100%]"}
|
|
|
+ onClick={() => {
|
|
|
+ setCount(0);
|
|
|
+ run();
|
|
|
+ }}
|
|
|
+ >
|
|
|
<div className={"relative flex h-[4.4653rem] w-[100%] justify-center"}>
|
|
|
<img
|
|
|
alt={""}
|
|
@@ -78,9 +107,9 @@ const ActivityMask = () => {
|
|
|
className={`${styles.ActivityShadow} -mt-[0.1389rem]`}
|
|
|
// @ts-ignore
|
|
|
style={{ "--font-size": "0.4167rem" }}
|
|
|
- data-text={`R$${wallet?.notice?.lose_score}`}
|
|
|
+ data-text={`R$${count}`}
|
|
|
>
|
|
|
- R${wallet?.notice?.lose_score}
|
|
|
+ R${count}
|
|
|
</div>
|
|
|
</div>
|
|
|
|