import React, { useEffect, useState, useContext } from "react"; import { Outlet, useParams } from "react-router-dom"; import JSOG from "jsog"; import OpinionTree from "../Components/OpinionTree"; import { AddOpinionButton, Modal, ModalContent, ModalClose, ModalHeader, ModalBody, ModalInput, ModalTextarea, ModalFooter, } from "../Components/Styled/Modal.style"; import { ProfessorCard, ProfessorCardDetails, ProfessorCardName, ProfessorCardSeparator, } from "../Components/Styled/ProfessorCard.style"; import AuthApi from "../api/AuthApi"; import { useNavigate } from "react-router-dom"; import axios from "../api/axios"; function Professor(user, userLoaded) { let params = useParams(); let [professor, setProfessor] = useState(null); let [loaded, setLoaded] = useState(null); let [postModalDisplay, setPostModalDisplay] = useState("none"); let navigate = useNavigate(); const { auth, setAuth } = useContext(AuthApi); const [postTitle, setPostTitle] = useState(""); const [postContent, setPostContent] = useState(""); useEffect(() => { const url = `http://192.168.0.17:8080/public/professor/${params.professorId}`; const fetchData = async () => { try { const response = await fetch(url); var cyclicGraph = await response.json(); var jsogStructure = JSOG.encode(cyclicGraph); cyclicGraph = JSOG.decode(jsogStructure); setProfessor(cyclicGraph); setLoaded(true); } catch (error) { console.log("Fetching error", error); } }; fetchData(); }, [params.professorId]); const handleAddOpinionButtonClick = () => { if (auth) { setPostModalDisplay("block"); } else { navigate("/login"); } }; const handleModalCloseClick = () => { setPostModalDisplay("none"); }; const handlePostSubmit = async (e) => { e.preventDefault(); const response = await axios( `http://192.168.0.17:8080/secure/professor/${professor.professorId}/addOpinion`, { method: "post", data: { title: postTitle, content: postContent, }, withCredentials: true, } ); window.location.reload(false); }; const handleTitleChange = (e) => { setPostTitle(e.target.value); }; const handleContentChange = (e) => { setPostContent(e.target.value); }; if (loaded) { return (
{professor.professorName}
{professor.faculty.facultyName} {professor.faculty.university.universityName}

{professor.relatedOpinions.length}{" "} {professor.relatedOpinions.length !== 1 ? "мислења" : "мислење"}

{auth && ( Објави мислење )}
×

Мислење за {professor.professorName}

ОБЈАВИ
); } else { return (

се вчитува...

); } } export default Professor;