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 86 87 88 89 | 1x 1x 1x 1x 1x 1x 1x 66x 66x 66x 1x 1x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x 66x | import React from "react";
import { Row, Card, Col, Button, Alert } from "react-bootstrap";
import { useNavigate } from "react-router";
import { hasRole } from "main/utils/currentUser";
import { daysSinceTimestamp } from "main/utils/dateUtils";
import { useBackend } from "main/utils/useBackend";
export default function CommonsOverview({ commonsPlus, currentUser }) {
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;
// Stryker disable all
const { data: announcementsData } = useBackend(
[`/api/announcements/current?commonsId=${commonsPlus.commons.id}`],
{
method: "GET",
url: "/api/announcements/current",
params: {
commonsId: commonsPlus.commons.id,
},
},
[],
);
// Stryker restore all
// Stryker disable next-line all : fallback handling
const announcements = announcementsData?.content || [];
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)" }
}
>
<Row>
<Col>
<Card.Title>
Today is day
{daysSinceTimestamp(commonsPlus.commons.startingDate)}!
</Card.Title>
<Card.Text>Total Players: {commonsPlus.totalUsers}</Card.Text>
{announcements.length > 0 && (
<div className="mt-3" data-testid="announcements-container">
{announcements.map((announcement) => (
<Alert
key={announcement.id}
variant="warning"
data-testid={`CommonsOverview-announcement-${announcement.id}`}
>
{announcement.announcementText}
</Alert>
))}
</div>
)}
</Col>
<Col>
{showLeaderboard && (
<Button
variant="outline-success"
data-testid="user-leaderboard-button"
onClick={leaderboardButtonClick}
>
Leaderboard
</Button>
)}
</Col>
</Row>
</Card.Body>
</Card>
);
}
|