index.jsx 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { REQ_STATUS } from '@api/config';
  2. import styles from './styles.module.scss';
  3. import { getBonusStatus, getTurnplate } from "@features/turnplateSlice";
  4. import WWithdrawalInfo from '@widgets/WWithdrawalInfo';
  5. import { useDispatch, useSelector } from "react-redux";
  6. import { reqTurnplateBonus } from '@features/api';
  7. import WITHDRAW_TYPE from '@constants/withdraw_types';
  8. import { getFreeChannel, getFreeWithdrawClaimStatus } from '@features/mainSlice';
  9. import { useNavigate } from 'react-router';
  10. import { ROUTE_PATH } from '@constants/routes';
  11. import { getWithdrawOnlyType } from '@utils/helpers';
  12. const WReferral = () => {
  13. const turnplate = useSelector(getTurnplate);
  14. const bonusStatus = useSelector(getBonusStatus);
  15. const freeWithdrawStatus = useSelector(getFreeWithdrawClaimStatus);
  16. const freeChannel = useSelector(getFreeChannel);
  17. const dispatch = useDispatch();
  18. const navigate = useNavigate();
  19. if (!global.referralPayload) return <></>;
  20. const { type, score, callback } = global.referralPayload;
  21. const cashBase = Number(global.CASH_BASE) > 0 ? Number(global.CASH_BASE) : 1;
  22. const collectedAmount = (Number(turnplate?.collect_amount) || 0) / cashBase;
  23. const missionScore = Number(score) || 0;
  24. const onConfirm = async () => {
  25. if (type === WITHDRAW_TYPE.SHARE) {
  26. if (bonusStatus === REQ_STATUS.LOADING) return;
  27. await dispatch(reqTurnplateBonus()).unwrap().catch(e => null);
  28. navigate(ROUTE_PATH.HOME, { replace: true });
  29. } else if (type === WITHDRAW_TYPE.MISSION) {
  30. if (freeWithdrawStatus === REQ_STATUS.LOADING) return;
  31. callback?.();
  32. }
  33. };
  34. if (type === WITHDRAW_TYPE.SHARE) {
  35. return (
  36. <div className={styles.container}>
  37. <span>{global.DOLLAR}{collectedAmount.toFixed(2)}</span>
  38. <WWithdrawalInfo
  39. paypalTips
  40. togType={2}
  41. amount={collectedAmount}
  42. onlyType={getWithdrawOnlyType(freeChannel)}
  43. onConfirm={onConfirm}
  44. loading={bonusStatus === REQ_STATUS.LOADING} />
  45. </div>
  46. );
  47. } else if (type === WITHDRAW_TYPE.MISSION) {
  48. return (
  49. <div className={styles.container}>
  50. <span>{global.DOLLAR}{missionScore.toFixed(2)}</span>
  51. <WWithdrawalInfo
  52. paypalTips
  53. togType={2}
  54. amount={missionScore}
  55. onlyType={getWithdrawOnlyType(freeChannel)}
  56. onConfirm={onConfirm}
  57. loading={freeWithdrawStatus === REQ_STATUS.LOADING} />
  58. </div>
  59. );
  60. } else {
  61. return <></>;
  62. }
  63. };
  64. export default WReferral;