index.jsx 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import styles from './styles.module.scss';
  2. import Spring from "@components/Spring";
  3. import {ReactComponent as PhonePassIcon} from "@assets/singlesvg/mobile-password.svg";
  4. import {ReactComponent as WithdrawPassIcon} from "@assets/singlesvg/store-pass.svg";
  5. import {ReactComponent as EditPhoneIcon} from "@assets/singlesvg/store-phone.svg";
  6. import {ReactComponent as EditEmailIcon} from "@assets/singlesvg/store-email.svg";
  7. import React from "react";
  8. import {useNavigate} from "react-router-dom";
  9. import {ROUTE_PATH} from "@constants/routes";
  10. import {useDispatch, useSelector} from "react-redux";
  11. import {getUserInfo} from "@features/mainSlice";
  12. import {setChangePayPassType} from "@features/paySlice";
  13. const i18n=global.i18n;
  14. const WSecurity = ({ close }) => {
  15. const navigate = useNavigate();
  16. const user=useSelector(getUserInfo);
  17. const dispatch = useDispatch();
  18. const isShowPWD=user != null && user.Phone != null && user.Phone !== "";
  19. const renderPhone=()=>{
  20. return (
  21. isShowPWD? (
  22. <div className={styles.item}>
  23. <div className={styles.item_title_con}>
  24. <EditPhoneIcon className={styles.icon}></EditPhoneIcon>
  25. <div className={styles.title}>{i18n.t("security.phone_title")}</div>
  26. </div>
  27. <div>{i18n.t("security.phone_des")}</div>
  28. <button className={`button-green ${styles.button}`} onClick={() => {
  29. navigate(ROUTE_PATH.EDIT_PHONE)
  30. }}>{i18n.t("security.phone_title")}</button>
  31. </div>
  32. ):(<></>)
  33. )
  34. }
  35. const renderEmail=()=>{
  36. return (
  37. isShowPWD? (
  38. <div className={styles.item}>
  39. <div className={styles.item_title_con}>
  40. <EditEmailIcon className={styles.icon}></EditEmailIcon>
  41. <div className={styles.title}>{i18n.t("security.email_title")}</div>
  42. </div>
  43. <div>{i18n.t("security.email_des")}</div>
  44. <button className={`button-green ${styles.button}`} onClick={() => {
  45. navigate(ROUTE_PATH.EDIT_EMAIL)
  46. }}>{i18n.t("security.email_title")}</button>
  47. </div>
  48. ):(<></>)
  49. )
  50. }
  51. return (
  52. <div className={styles.container}>
  53. <Spring className={styles.content} type={"slideUp"}>
  54. <div className={`${styles.title_con} ${styles.title_y}`}>
  55. {i18n.t("security.title")}
  56. </div>
  57. <div className={styles.line}></div>
  58. {
  59. isShowPWD? (
  60. <div className={styles.item}>
  61. <div className={styles.item_title_con}>
  62. <PhonePassIcon className={styles.icon}></PhonePassIcon>
  63. <div className={styles.title}>{i18n.t("security.login_pass_title")}</div>
  64. </div>
  65. <div>{i18n.t("security.login_pass_des")}</div>
  66. <button className={`button-green ${styles.button}`} onClick={() => {
  67. navigate(ROUTE_PATH.EDIT_PWD)
  68. }}>{i18n.t("security.login_pass_title")}</button>
  69. </div>
  70. ):(<></>)
  71. }
  72. <div className={styles.item}>
  73. <div className={styles.item_title_con}>
  74. <WithdrawPassIcon className={styles.icon}></WithdrawPassIcon>
  75. <div className={styles.title}>{i18n.t("security.withdraw_pass_title")}</div>
  76. </div>
  77. <div>{i18n.t("security.withdraw_pass_des")}</div>
  78. <button className={`button-green ${styles.button}`} onClick={() => {
  79. let InsurePass = Number(user.InsurePass);
  80. let type = InsurePass;
  81. dispatch(setChangePayPassType(InsurePass));
  82. navigate(ROUTE_PATH.CHANGE_PAY_PASS)
  83. }}>{i18n.t("security.withdraw_pass_title")}</button>
  84. </div>
  85. {renderPhone()}
  86. {renderEmail()}
  87. </Spring>
  88. </div>
  89. )
  90. }
  91. export default WSecurity;