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

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

added styling to /professor/{professorId} page

  • Property mode set to 100644
File size: 2.0 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 />
50 <div style={{ marginTop: "20px" }}>
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>
59 <h3>{professor.relatedOpinions.length} мислења</h3>
[3a44163]60 <div className="opinionTree">
61 <OpinionTree professor={professor} />
62 </div>
[4a64cf0]63 <Outlet />
[7cb8c3c]64 </div>
[4a64cf0]65 );
66 } else {
67 return (
68 <div>
69 <p>loading</p>
70 <Outlet />
71 </div>
72 );
73 }
[7cb8c3c]74}
75
76export default Professor;
Note: See TracBrowser for help on using the repository browser.