Changeset 9bf1f8d for reactapp/src/Pages/Topic.js
- Timestamp:
- 01/20/23 22:57:18 (20 months ago)
- Branches:
- main
- Children:
- 8dffe02
- Parents:
- 4abf55a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
reactapp/src/Pages/Topic.js
r4abf55a r9bf1f8d 43 43 const [postModalDisplay, setPostModalDisplay] = useState("none"); 44 44 const [postContent, setPostContent] = useState(""); 45 45 46 const [replyModalDisplay, setReplyModalDisplay] = useState("none"); 46 47 const [replyContent, setReplyContent] = useState(""); 47 const [postForModal, setPostForModal] = useState(null); 48 const [postForReplyModal, setPostForReplyModal] = useState(null); 49 50 const [reportModalDisplay, setReportModalDisplay] = useState("none"); 51 const [reportContent, setReportContent] = useState(""); 52 const [postForReportModal, setPostForReportModal] = useState(null); 53 48 54 const [errorMessage, setErrorMessage] = useState(""); 49 55 50 56 useEffect(() => { 51 const url1 = `http://192.168. 0.29:8080/public/thread/${params.topicId}`;52 const url2 = `http://192.168. 0.29:8080/secure/currentUser`;57 const url1 = `http://192.168.1.254:8080/public/thread/${params.topicId}`; 58 const url2 = `http://192.168.1.254:8080/secure/currentUser`; 53 59 54 60 const fetchTopic = async () => { … … 79 85 80 86 fetchTopic().then(fetchUser); 81 }, [ ]);87 }, [loadedThread]); 82 88 83 89 const handleReply = (post) => { 84 90 if (auth) { 85 91 setReplyModalDisplay("block"); 86 setPostForModal(post); 92 setPostForReplyModal(post); 93 document.body.style.overflowY = "hidden"; 94 } else { 95 navigate("/login"); 96 } 97 }; 98 99 const handleReport = (post) => { 100 if (auth) { 101 setReportModalDisplay("block"); 102 setPostForReportModal(post); 87 103 document.body.style.overflowY = "hidden"; 88 104 } else { … … 95 111 }; 96 112 113 const handleReportContentChange = (e) => { 114 e.preventDefault(); 115 setReportContent(e.target.value); 116 }; 117 97 118 const handleReplySubmit = async (e, postId) => { 98 119 e.preventDefault(); … … 100 121 if (!replyContent.length < 1) { 101 122 const response = await axios( 102 `http://192.168. 0.29:8080/secure/subject/${thread.targetSubject.subjectId}/replyToThread/${postId}`,123 `http://192.168.1.254:8080/secure/subject/${thread.targetSubject.subjectId}/replyToThread/${postId}`, 103 124 { 104 125 method: "post", … … 116 137 }; 117 138 139 const handleReportSubmit = async (e, postId) => { 140 e.preventDefault(); 141 142 if (!reportContent.length < 1) { 143 const response = await axios( 144 `http://192.168.1.254:8080/secure/reportThread/${postId}`, 145 { 146 method: "post", 147 data: { 148 description: reportContent, 149 }, 150 withCredentials: true, 151 } 152 ); 153 setErrorMessage(""); 154 window.location.reload(); 155 } else { 156 setErrorMessage("Полето за содржина не смее да биде празно"); 157 } 158 }; 159 118 160 const handleAddOpinionButtonClick = () => { 119 161 if (auth) { … … 129 171 if (!postContent.length < 1) { 130 172 const response = await axios( 131 `http://192.168. 0.29:8080/secure/subject/${thread.targetSubject.subjectId}/replyToThread/${params.topicId}`,173 `http://192.168.1.254:8080/secure/subject/${thread.targetSubject.subjectId}/replyToThread/${params.topicId}`, 132 174 { 133 175 method: "post", … … 147 189 setPostModalDisplay("none"); 148 190 setReplyModalDisplay("none"); 191 setReportModalDisplay("none"); 149 192 document.body.style.overflowY = "auto"; 150 193 }; … … 161 204 ) { 162 205 const response = await axios( 163 `http://192.168. 0.29:8080/secure/upvoteThread/${post.postId}`,206 `http://192.168.1.254:8080/secure/upvoteThread/${post.postId}`, 164 207 { 165 208 method: "get", … … 184 227 ) { 185 228 const response = await axios( 186 `http://192.168. 0.29:8080/secure/downvoteThread/${post.postId}`,229 `http://192.168.1.254:8080/secure/downvoteThread/${post.postId}`, 187 230 { 188 231 method: "get", … … 280 323 color="darkgrey" 281 324 onClick={() => handleReply(child)} 325 /> 326 327 <StyledFontAwesomeIcon 328 icon={solid("flag")} 329 right={130 + "px"} 330 color="darkgrey" 331 onClick={() => handleReport(child)} 282 332 /> 283 333 </div> … … 393 443 > 394 444 <StyledFontAwesomeIcon 445 icon={solid("flag")} 446 right={90 + "px"} 447 color="darkgrey" 448 onClick={() => handleReport(thread)} 449 /> 450 <StyledFontAwesomeIcon 395 451 icon={solid("thumbs-up")} 396 452 right={50 + "px"} … … 517 573 onClick={() => handleReply(directChild)} 518 574 /> 575 576 <StyledFontAwesomeIcon 577 icon={solid("flag")} 578 right={130 + "px"} 579 color="darkgrey" 580 onClick={() => handleReport(directChild)} 581 /> 519 582 </div> 520 583 </OpinionCardContent> … … 525 588 ); 526 589 })} 527 {postFor Modal && (590 {postForReplyModal && ( 528 591 <Modal display={replyModalDisplay}> 529 592 <ModalContent> … … 531 594 <ModalClose onClick={handleModalCloseClick}>×</ModalClose> 532 595 <h3 style={{ marginTop: "5px" }}> 533 Реплика на {postFor Modal.author.username}596 Реплика на {postForReplyModal.author.username} 534 597 </h3> 535 598 </ModalHeader> 536 <form onSubmit={(e) => handleReplySubmit(e, postFor Modal.postId)}>599 <form onSubmit={(e) => handleReplySubmit(e, postForReplyModal.postId)}> 537 600 <ModalBody> 538 601 <label htmlFor="content"> … … 557 620 </Modal> 558 621 )} 622 {postForReportModal && ( 623 <Modal display={reportModalDisplay}> 624 <ModalContent> 625 <ModalHeader> 626 <ModalClose onClick={handleModalCloseClick}>×</ModalClose> 627 <h3 style={{ marginTop: "5px" }}> 628 Пријава за мислење #{postForReportModal.postId} 629 </h3> 630 </ModalHeader> 631 <form onSubmit={(e) => handleReportSubmit(e, postForReportModal.postId)}> 632 <ModalBody> 633 <label htmlFor="content"> 634 <b>Наведете причина</b>: 635 <ModalTextarea 636 id="content" 637 rows="8" 638 cols="100" 639 value={reportContent} 640 onChange={handleReportContentChange} 641 /> 642 </label> 643 </ModalBody> 644 <p 645 style={{ color: "red", marginLeft: "15px", marginTop: "10px" }} 646 > 647 {errorMessage} 648 </p> 649 <ModalFooter type="submit">ПРИЈАВИ</ModalFooter> 650 </form> 651 </ModalContent> 652 </Modal> 653 )} 559 654 </> 560 655 ) : !fetchError && !loadedThread ? (
Note:
See TracChangeset
for help on using the changeset viewer.