All files / pages AdminAnnouncementsPage.jsx

100% Statements 50/50
100% Branches 3/3
100% Functions 1/1
100% Lines 50/50

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 691x 1x 1x 1x 1x 1x 1x 1x   1x 8x 8x   8x 8x 8x 8x 8x 8x 8x 8x 8x 8x     8x 8x 8x 8x 8x 8x 8x 8x 8x 8x   8x   8x   8x 8x   8x 8x 8x 8x 8x 8x   8x 8x 8x 8x       8x 8x 8x 8x             8x  
import React from "react";
import Button from "react-bootstrap/Button";
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import { Row, Col } from "react-bootstrap";
import { useParams } from "react-router";
import { useBackend } from "main/utils/useBackend";
import AnnouncementTable from "main/components/Announcement/AnnouncementTable";
import { useCurrentUser } from "main/utils/currentUser";
 
export default function AdminAnnouncementsPage() {
  const { commonsId } = useParams();
  const { data: currentUser } = useCurrentUser();
 
  // Stryker disable all : hard to test query caching
  const { data: commonsPlus } = useBackend(
    [`/api/commons/plus?id=${commonsId}`],
    {
      method: "GET",
      url: "/api/commons/plus",
      params: {
        id: commonsId,
      },
    },
  );
 
  const { data: announcements } = useBackend(
    [`/api/announcements/getbycommonsid?commonsId=${commonsId}`],
    {
      method: "GET",
      url: "/api/announcements/getbycommonsid",
      params: {
        commonsId,
      },
    },
    [],
  );
  // Stryker restore all
 
  const commonsName = commonsPlus?.commons.name;
 
  // Stryker disable next-line all : fallback for loading/empty paged response
  const announcementData = announcements?.content || [];
 
  return (
    <BasicLayout>
      <div className="pt-2">
        <Row className="pt-5">
          <Col>
            <h2>Announcements for Commons: {commonsName}</h2>
 
            <Button
              variant="primary"
              href={`/admin/announcements/${commonsId}/create`}
            >
              Create Announcement
            </Button>
 
            <AnnouncementTable
              announcements={announcementData}
              currentUser={currentUser}
              commonsId={commonsId}
            />
          </Col>
        </Row>
      </div>
    </BasicLayout>
  );
}