WAgentHistory.jsx 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import styles from './styles.module.scss';
  2. import React, {useEffect} from "react";
  3. import {useDispatch, useSelector} from "react-redux";
  4. import {reqAgentHistory} from "@features/api";
  5. import {getAgentHistory, getAgentHistoryStatus} from "@features/agentSlice";
  6. import {REQ_STATUS} from "@api/config";
  7. import SmallLoading from "@components/SmallLoading";
  8. import Spring from "@components/Spring";
  9. import {formatCash} from "@utils/helpers";
  10. const i18n=global.i18n;
  11. const WAgentHistory = ({close}) => {
  12. const dispatch = useDispatch();
  13. const status=useSelector(getAgentHistoryStatus);
  14. const history=useSelector(getAgentHistory);
  15. useEffect(() => {
  16. dispatch(reqAgentHistory());
  17. }, []);
  18. const renderList=()=>{
  19. if (status===REQ_STATUS.LOADING){
  20. return (
  21. <div className={"w-100 h-100vh"}>
  22. <SmallLoading/>
  23. </div>
  24. )
  25. }
  26. let len=history.length;
  27. return (
  28. <Spring type={"slideUp"} className={"d-flex flex-column g-1"}>
  29. {
  30. history.map((item,index)=>{
  31. let Date=item.Date+"";
  32. let DateStr=Date.substring(0,4)+"-"+Date.substring(4,6)+"-"+Date.substring(6,8);
  33. let bonus=item.bonus;
  34. let bonusStr=global.DOLLAR+formatCash(bonus,2,true);
  35. let bg_style=index===len-1?styles.info_item_bottom:styles.info_item_middle;
  36. return (
  37. <div key={index} className={`${styles.info_item_title} ${bg_style}`}>
  38. <span className={styles.sub_data_item}>{DateStr}</span>
  39. <span className={styles.sub_data_item}>{bonusStr}</span>
  40. <span className={`${styles.sub_data_item} ${styles.text_green}`}>{i18n.t("agent.history.status_1")}</span>
  41. </div>
  42. )
  43. })
  44. }
  45. </Spring>
  46. )
  47. }
  48. const renderContent=()=>{
  49. return (
  50. <div className={"d-flex flex-column g-1"}>
  51. <div className={`${styles.info_item_title} ${styles.info_item_title_middle} ${styles.text_white}`}>
  52. <span className={styles.sub_data_item}>{i18n.t("agent.bonus.label_date")}</span>
  53. <div className={styles.text_line}></div>
  54. <span className={styles.sub_data_item}>{i18n.t("agent.bonus.label_commision")}</span>
  55. <div className={styles.text_line}></div>
  56. <span className={styles.sub_data_item}>{i18n.t("agent.history.label_status")}</span>
  57. </div>
  58. {renderList()}
  59. </div>
  60. )
  61. }
  62. return (
  63. <div className={styles.container}>
  64. {renderContent()}
  65. </div>
  66. )
  67. }
  68. export default WAgentHistory;