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 69x 69x 69x 1x 1x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x 69x | 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>
);
}
|