Content.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import Leaderboard from "./Leaderboard";
  2. import Stakes from "./Stakes";
  3. import Stats from "./MinMax";
  4. import ValidatorList from "./ValidatorList";
  5. import { Spinner } from "..";
  6. const Content = (props: IState) => {
  7. const { validators, stashes, stars, status, stakes, tokenomics } = props;
  8. if (!status?.block || !validators.length) return <Spinner />;
  9. const { block, era } = status;
  10. const waiting = stashes.filter((s) => !stars[s] && !validators.includes(s));
  11. const issued = tokenomics ? Number(tokenomics.totalIssuance) : 0;
  12. const price = tokenomics ? Number(tokenomics.price) : 0;
  13. return (
  14. <div className="p-3">
  15. <Stats
  16. block={block}
  17. era={era}
  18. stakes={stakes}
  19. issued={issued}
  20. price={price}
  21. validators={validators}
  22. nominators={props.nominators.length}
  23. waiting={waiting.length}
  24. reward={status.lastReward}
  25. />
  26. <Leaderboard members={props.members} points={props.rewardPoints} />
  27. <Stakes stakes={props.stakes} members={props.members} />
  28. <ValidatorList
  29. toggleStar={props.toggleStar}
  30. waiting={waiting}
  31. {...props}
  32. />
  33. </div>
  34. );
  35. };
  36. export default Content;