source: reactapp/src/Pages/Professor.js@ f5d4792

main
Last change on this file since f5d4792 was f5d4792, checked in by unknown <mlviktor23@…>, 2 years ago

styled professor page

  • Property mode set to 100644
File size: 2.2 KB
RevLine 
[7cb8c3c]1import React, { useEffect, useState } from "react";
[3a44163]2import { Outlet, useParams } from "react-router-dom";
[2998dc4]3import JSOG from "jsog";
[3a44163]4import OpinionTree from "../Components/OpinionTree";
[e958037]5import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
6import {
7 solid,
8 regular,
9 brands,
10} from "@fortawesome/fontawesome-svg-core/import.macro";
11
12import {
13 ProfessorCard,
14 ProfessorCardDetails,
15 ProfessorCardName,
16 ProfessorCardSeparator,
17} from "../Components/ProfessorCard.style";
[7cb8c3c]18
[3a44163]19function Professor(props) {
[7cb8c3c]20 let params = useParams();
21
[4a64cf0]22 let [professor, setProfessor] = useState(null);
23 let [loaded, setLoaded] = useState(null);
[7cb8c3c]24
25 useEffect(() => {
[4a64cf0]26 const url = `http://192.168.0.17:8080/public/professor/${params.professorId}`;
[7cb8c3c]27
28 const fetchData = async () => {
29 try {
30 const response = await fetch(url);
[2998dc4]31 var cyclicGraph = await response.json();
32 var jsogStructure = JSOG.encode(cyclicGraph); // has { '@ref': 'ID' } links instead of cycles
33 cyclicGraph = JSOG.decode(jsogStructure);
34 setProfessor(cyclicGraph);
[4a64cf0]35 setLoaded(true);
[7cb8c3c]36 } catch (error) {
[3a44163]37 console.log("Error", error);
[7cb8c3c]38 }
39 };
40
41 fetchData();
42 }, []);
43
[4a64cf0]44 if (loaded) {
45 return (
[7cb8c3c]46 <div>
[e958037]47 <ProfessorCard>
48 <ProfessorCardName>{professor.professorName}</ProfessorCardName>
49 <ProfessorCardSeparator />
[5347491]50 <div style={{ marginTop: "10px" }}>
[e958037]51 <ProfessorCardDetails fontSize="20px">
52 {professor.faculty.facultyName}
53 </ProfessorCardDetails>
54 <ProfessorCardDetails fontSize="15px">
55 {professor.faculty.university.universityName}
56 </ProfessorCardDetails>
57 </div>
58 </ProfessorCard>
[f5d4792]59 <h3 style={{ marginBottom: "10px" }}>
60 {professor.relatedOpinions.length}{" "}
61 {professor.relatedOpinions.length !== 1 ? "мислења" : "мислење"}
62 </h3>
[3a44163]63 <div className="opinionTree">
64 <OpinionTree professor={professor} />
65 </div>
[4a64cf0]66 <Outlet />
[7cb8c3c]67 </div>
[4a64cf0]68 );
69 } else {
70 return (
71 <div>
72 <p>loading</p>
73 <Outlet />
74 </div>
75 );
76 }
[7cb8c3c]77}
78
79export default Professor;
Note: See TracBrowser for help on using the repository browser.