WCashWheelHeader.jsx 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import {useSelector} from "react-redux";
  2. import {getUserInfo, isLogined} from "@features/mainSlice";
  3. import styles from "./styles.module.scss";
  4. import SvgIcon from "@components/SvgIcon";
  5. import React, {useState} from "react";
  6. import WRetainPop from "@widgets/WCashWheel/WRetainPop/WRetainPop";
  7. import WShare from "@widgets/WCashWheel/WShare/WShare";
  8. import {getTurnplate} from "@features/turnplateSlice";
  9. import {localStorageGet, localStorageSet} from "@utils/helpers";
  10. import {LOCAL_WHEEL_RETAIN} from "@constants/localkey";
  11. import {ROUTE_PATH} from "@constants/routes";
  12. import {useNavigate} from "react-router";
  13. const i18n=global.i18n;
  14. const WCashWheelHeader=({...props})=>{
  15. const route=props.route;
  16. const close=props.close;
  17. const user=useSelector(getUserInfo);
  18. const isLogin=useSelector(isLogined);
  19. const turnplate=useSelector(getTurnplate);
  20. const [openRetain,setOpenRetain]=useState(false);
  21. const [openShare,setOpenShare]=useState(false);
  22. const navigate=useNavigate();
  23. const onCheckClose=()=>{
  24. let isclose=true;
  25. if (isLogin){
  26. if (turnplate!=null){
  27. let collect_amount=turnplate.collect_amount;
  28. let total_amount=turnplate.total_amount;
  29. if (collect_amount>0&&collect_amount<total_amount){
  30. let lsttime=localStorageGet(LOCAL_WHEEL_RETAIN,"0");
  31. lsttime=Number(lsttime);
  32. let now=Date.now();
  33. let dis=now-lsttime;
  34. if (dis>86400000){
  35. setOpenRetain(true);
  36. isclose=false;
  37. }
  38. }
  39. }
  40. }
  41. if (isclose){
  42. close();
  43. // navigate("",{replace:true});
  44. }
  45. }
  46. const renderHeader=()=>{
  47. let title=route?route.title:"";
  48. return (
  49. <div className={styles.header}>
  50. <div className={styles.hcontent}>
  51. {i18n.t(title)}
  52. </div>
  53. <div className={styles.top}>
  54. <div className={styles.left}>
  55. <button className={styles.close} onClick={()=>{
  56. close();
  57. // onCheckClose();
  58. }}>
  59. <SvgIcon className={styles.arrow} herf={"icon_Arrow"}/>
  60. </button>
  61. </div>
  62. <div className={styles.right}>
  63. </div>
  64. </div>
  65. </div>
  66. )
  67. }
  68. const renderShare=()=>{
  69. return (
  70. <WShare open={openShare} onClose={()=>{
  71. setOpenShare(false);
  72. }}></WShare>
  73. )
  74. }
  75. const renderRetainPop=()=>{
  76. return (
  77. <WRetainPop open={openRetain} onClose={()=>{
  78. setOpenRetain(false);
  79. }} openShare={openShareBox} closeP={()=>{
  80. localStorageSet(LOCAL_WHEEL_RETAIN,Date.now())
  81. close();
  82. }}></WRetainPop>
  83. )
  84. }
  85. const openShareBox=()=>{
  86. setOpenShare(true)
  87. }
  88. return (
  89. <div id={props.id} className={props.className}>
  90. {renderHeader()}
  91. {renderShare()}
  92. {renderRetainPop()}
  93. </div>
  94. )
  95. }
  96. export default WCashWheelHeader;