All files / components/Commons CommonsOverview.jsx

100% Statements 41/41
100% Branches 3/3
100% Functions 2/2
100% Lines 41/41

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 611x 1x 1x 1x 1x 1x   1x 73x 73x 73x 73x 73x   73x 73x 1x 1x 73x   73x 73x   73x 73x 73x     73x 73x 73x 73x     73x   73x 73x 73x 73x 73x   73x   73x 73x 73x 73x 73x 73x 73x                 73x  
import React from "react";
import { Row, Card, Col, Button } from "react-bootstrap";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/currentUser";
import { daysSinceTimestamp } from "main/utils/dateUtils";
import CurrentAnnouncements from "main/components/Announcement/CurrentAnnouncements";
 
export default function CommonsOverview({
  commonsPlus,
  currentUser,
  currentAnnouncements,
}) {
  let navigate = useNavigate();
 
  // Stryker disable all
  const leaderboardButtonClick = () => {
    navigate("/leaderboard/" + commonsPlus.commons.id);
  };
  // Stryker restore all
 
  const showLeaderboard =
    hasRole(currentUser, "ROLE_ADMIN") || commonsPlus.commons.showLeaderboard;
 
  return (
    <Card data-testid="CommonsOverview">
      <Card.Header as="h5" className="woodenboardtable">
        Announcements
      </Card.Header>
      <Card.Body
        style={
          // Stryker disable next-line all: don't test CSS params
          { backgroundColor: "rgb(245, 210, 140)" }
        }
      >
        <CurrentAnnouncements announcements={currentAnnouncements} />
 
        <Row>
          <Col>
            <Card.Title>
              Today is day{" "}
              {daysSinceTimestamp(commonsPlus.commons.startingDate)}!
            </Card.Title>
            <Card.Text>Total Players: {commonsPlus.totalUsers}</Card.Text>
          </Col>
          <Col>
            {showLeaderboard && (
              <Button
                variant="outline-success"
                data-testid="user-leaderboard-button"
                onClick={leaderboardButtonClick}
              >
                Leaderboard
              </Button>
            )}
          </Col>
        </Row>
      </Card.Body>
    </Card>
  );
}