All files / components/Leaderboard LeaderboardTable.js

100% Statements 13/13
100% Branches 0/0
100% Functions 9/9
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85          19x         19x                 16x       15x       26x               26x               26x               26x               26x               26x           19x   19x   19x              
import OurTable from "main/components/OurTable";
 
// should take in a players list from a commons
export default function LeaderboardTable({ leaderboardUsers }) {
 
    const USD = new Intl.NumberFormat("en-US", {
        style: "currency",
        currency: "USD"
    });
 
    const columns = [
        {
            Header: 'Farmer',
            accessor: 'username', 
        },
        {
            Header: 'Total Wealth',
            id: 'totalWealth',
            accessor: (row, _rowIndex) => {
                return USD.format(row.totalWealth);
            },
            sortType: 
                (rowA,rowB,_id,_desc)=>{
                    return rowA.original.totalWealth - rowB.original.totalWealth;
                }
            ,
            Cell: (props) => {
                return (
                  <div style={{textAlign: "right"}}>{props.value}</div>)
            },
        },
        {
            Header: 'Cows Owned',
            accessor: 'numOfCows', 
            Cell: (props) => {
                return (
                  <div style={{textAlign: "right"}}>{props.value}</div>)
                  },
        },
        {
            Header: 'Cow Health',
            accessor: 'cowHealth', 
            Cell: (props) => {
                return (
                  <div style={{textAlign: "right"}}>{props.value}</div>)
                  },
        },
        {
            Header: 'Cows Bought',
            accessor: 'cowsBought', 
            Cell: (props) => {
                return (
                  <div style={{textAlign: "right"}}>{props.value}</div>)
                  },
        },
        {
            Header: 'Cows Sold',
            accessor: 'cowsSold', 
            Cell: (props) => {
                return (
                  <div style={{textAlign: "right"}}>{props.value}</div>)
                  },
        },
        {
            Header: 'Cow Deaths',
            accessor: 'cowDeaths', 
            Cell: (props) => {
                return (
                  <div style={{textAlign: "right"}}>{props.value}</div>)
                  },
        },
    ];
 
    const testid = "LeaderboardTable";
 
    const columnsToDisplay = columns;
 
    return <OurTable
        data={leaderboardUsers}
        columns={columnsToDisplay}
        testid={testid}
    />;
 
};