All files / pages StudentProfilePage.jsx

100% Statements 42/42
100% Branches 4/4
100% Functions 2/2
100% Lines 42/42

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 631x 1x 1x 1x 1x 1x   1x 9x 9x   9x 9x 9x 9x 9x     9x 1x 1x   7x   7x 7x 7x 7x 7x 7x 7x 7x     7x 7x 7x     7x 7x 7x 7x 7x 7x         7x 7x 7x 7x 7x           7x   1x  
import { Row, Col, Button } from "react-bootstrap";
import { useNavigate } from "react-router";
import { useCurrentUser } from "main/utils/currentUser";
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import RecommendationRequestTable from "main/components/RecommendationRequest/RecommendationRequestTable";
import { useBackend } from "main/utils/useBackend";
 
const StudentProfilePage = () => {
  const { data: currentUser } = useCurrentUser();
  const navigate = useNavigate();
 
  // Fetch only the current user's recommendation requests
  const { data: requests } = useBackend(
    ["/api/recommendationrequest/requester/all"],
    { method: "GET", url: "/api/recommendationrequest/requester/all" },
    [],
  );
 
  if (!currentUser.loggedIn) {
    return <p>Not logged in.</p>;
  }
 
  const { email, pictureUrl, fullName } = currentUser.root.user;
 
  return (
    <BasicLayout>
      <Row className="align-items-center profile-header mb-5 text-center text-md-left">
        <Col md={2}>
          <img
            src={pictureUrl}
            alt="Profile"
            className="rounded-circle img-fluid profile-picture mb-3 mb-md-0"
          />
        </Col>
        <Col md>
          <h2>{fullName}</h2>
          <p className="lead text-muted">{email}</p>
        </Col>
      </Row>
      <Row className="mb-3">
        <Col>
          <Button
            variant="primary"
            onClick={() => navigate("/requests/create")}
          >
            Create New Request
          </Button>
        </Col>
      </Row>
      <Row>
        <Col>
          <RecommendationRequestTable
            requests={requests}
            currentUser={currentUser}
          />
        </Col>
      </Row>
    </BasicLayout>
  );
};
 
export default StudentProfilePage;