import { Avatar, Box, Heading, HStack, MetaTag, MetaTile, MetaTileBody, MetaTileHeader, Text, VStack, Wrap, WrapItem, } from '@metafam/ds'; import { computeRank } from '@metafam/utils'; import { MetaLink } from 'components/Link'; import { PlayerContacts } from 'components/Player/PlayerContacts'; import { PlayerTileMemberships } from 'components/Player/PlayerTileMemberships'; import { SkillsTags } from 'components/Skills'; import { utils } from 'ethers'; import { PlayerFragmentFragment, PlayerRank_Enum, Skill, } from 'graphql/autogen/types'; import { Patron } from 'graphql/types'; import React from 'react'; import { getPlayerCoverImage, getPlayerImage, getPlayerName, } from 'utils/playerHelpers'; const PATRON_RANKS = [ PlayerRank_Enum.Diamond, PlayerRank_Enum.Platinum, PlayerRank_Enum.Gold, PlayerRank_Enum.Silver, PlayerRank_Enum.Bronze, ]; const PATRONS_PER_RANK = [7, 7, 7, 14, 21]; type Props = { patron: Patron; index: number; }; export const PatronTile: React.FC = ({ index, patron }) => { const player = patron as PlayerFragmentFragment; const patronRank = computeRank(index, PATRONS_PER_RANK, PATRON_RANKS); return ( {getPlayerName(player)} {patron.pSeedBalance ? ( {`pSEED: ${Math.floor( Number(utils.formatEther(patron.pSeedBalance)), )}`} ) : null} {patronRank ? ( {patronRank} ) : null} {`XP: ${Math.floor(player.total_xp)}`} {player.box_profile?.description ? ( ABOUT {player.box_profile.description} ) : null} {player.Player_Skills.length ? ( SKILLS s.Skill) as Skill[]} /> ) : null} {player.daohausMemberships.length ? ( MEMBER OF ) : null} {player.Accounts.length ? ( CONTACT ) : null} ); };