From 7bd6b261f18552818bc9556dcfb6c709a59eb9fd Mon Sep 17 00:00:00 2001 From: mahmutbugramert Date: Fri, 13 Dec 2024 14:45:32 +0300 Subject: [PATCH 01/17] fix: remove fetching tags. Will use tags coming from posts directly. --- frontend/src/components/community/CommunityPage.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/frontend/src/components/community/CommunityPage.js b/frontend/src/components/community/CommunityPage.js index 11f0a7bc..e1e16a5e 100644 --- a/frontend/src/components/community/CommunityPage.js +++ b/frontend/src/components/community/CommunityPage.js @@ -21,13 +21,6 @@ const CommunityPage = () => { try { const response = await apiClient.get("/posts"); const tagsResponse = await apiClient.get("/tags"); - if (!tagsResponse.data) throw new Error("Failed to fetch tags"); - const tagsById = tagsResponse.data.reduce((acc, tag) => { - acc[tag.id] = tag.name; - return acc; - }, {}); - setTags(tagsById); - const usersResponse = await apiClient.get("/users"); console.log(usersResponse); const usersById = usersResponse.data.reduce((acc, user) => { @@ -45,7 +38,7 @@ const CommunityPage = () => { content: [{ type: "plain-text", "plain-text": post.content }], comments: [], likes: post.liked_by.length, - tags: post.tags.map((tagId) => tagsById[tagId] || "Unknown"), + tags: post.tags, "publication-date": new Date(post.created_at).toLocaleDateString(), })); setPosts(transformedPosts); From 41d7e0783897c8ef3d3d20d91bdbcdfdbae71522 Mon Sep 17 00:00:00 2001 From: mahmutbugramert Date: Fri, 13 Dec 2024 14:46:34 +0300 Subject: [PATCH 02/17] fix: post tags objects instead of tag ids. --- frontend/src/components/community/CreatePostPage.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/community/CreatePostPage.js b/frontend/src/components/community/CreatePostPage.js index c33c389e..ced61d14 100644 --- a/frontend/src/components/community/CreatePostPage.js +++ b/frontend/src/components/community/CreatePostPage.js @@ -99,17 +99,18 @@ const CreatePostPage = () => { return; } - const tagIds = selectedTags.map((tag) => tag.id); + const tags = selectedTags; const postData = { title, content: description, author: 2, liked_by: [], - tags: tagIds, + tags: tags, portfolios: [], }; try { + console.log(postData); const response = await apiClient.post("/posts/", postData); console.log("Post created successfully:", response.data); alert("Post created successfully!"); From 8999ce5923c069c368ee42ac2997fcfcd0c3ccd3 Mon Sep 17 00:00:00 2001 From: mahmutbugramert Date: Fri, 13 Dec 2024 14:49:16 +0300 Subject: [PATCH 03/17] fix: remove fetching tags from PostView. --- frontend/src/components/community/PostView.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index f7324c5a..dcbc57c4 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -24,20 +24,6 @@ const PostView = () => { const [tags, setTags] = useState([]); const [users, setUsers] = useState({}); const [isUsersLoaded, setIsUsersLoaded] = useState(false); - - const fetchTags = async (tags) => { - try { - const tagPromises = tags.map((tag) => apiClient.get(`/tags/${tag.id}/`)); - const responses = await Promise.all(tagPromises); - const tagNames = responses.map((response) => response.data.name); - - setTags(tagNames); - } catch (error) { - console.error("Error fetching tags:", error); - setTags([]); - } - }; - const fetchUsers = async () => { try { const response = await apiClient.get("/users"); @@ -83,7 +69,6 @@ const PostView = () => { }; setPost(normalizedPost); - fetchTags(backendPost.tags); } catch (error) { console.error("Error fetching post:", error); setPost(null); From f14a85a4612886c50578a79294673ef3f0335c70 Mon Sep 17 00:00:00 2001 From: mahmutbugramert Date: Fri, 13 Dec 2024 14:51:23 +0300 Subject: [PATCH 04/17] fix: fix invalid date error. --- frontend/src/components/community/CommunityPage.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/frontend/src/components/community/CommunityPage.js b/frontend/src/components/community/CommunityPage.js index e1e16a5e..cc701227 100644 --- a/frontend/src/components/community/CommunityPage.js +++ b/frontend/src/components/community/CommunityPage.js @@ -22,15 +22,12 @@ const CommunityPage = () => { const response = await apiClient.get("/posts"); const tagsResponse = await apiClient.get("/tags"); const usersResponse = await apiClient.get("/users"); - console.log(usersResponse); const usersById = usersResponse.data.reduce((acc, user) => { acc[user.id] = user.username; - console.log(acc); return acc; }, {}); setUsers(usersById); - console.log(usersById); const transformedPosts = response.data.map((post) => ({ "post-id": post.id, user: usersById[post.author] || "Unknown", @@ -39,7 +36,7 @@ const CommunityPage = () => { comments: [], likes: post.liked_by.length, tags: post.tags, - "publication-date": new Date(post.created_at).toLocaleDateString(), + "publication-date": new Date(post.created_at), })); setPosts(transformedPosts); } catch (error) { From e0ac30bbde63d04285a4af6dc6781d88bf821608 Mon Sep 17 00:00:00 2001 From: mahmutbugramert Date: Fri, 13 Dec 2024 14:52:33 +0300 Subject: [PATCH 05/17] fix: remove tag related fetching line. --- frontend/src/components/community/CommunityPage.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/frontend/src/components/community/CommunityPage.js b/frontend/src/components/community/CommunityPage.js index cc701227..d0097984 100644 --- a/frontend/src/components/community/CommunityPage.js +++ b/frontend/src/components/community/CommunityPage.js @@ -12,7 +12,6 @@ const CommunityPage = () => { const [sortOrder, setSortOrder] = useState("dsc"); const [searchActive, setSearchActive] = useState(false); const [posts, setPosts] = useState([]); - const [tags, setTags] = useState({}); const [users, setUsers] = useState({}); const navigate = useNavigate(); @@ -20,7 +19,6 @@ const CommunityPage = () => { const fetchPosts = async () => { try { const response = await apiClient.get("/posts"); - const tagsResponse = await apiClient.get("/tags"); const usersResponse = await apiClient.get("/users"); const usersById = usersResponse.data.reduce((acc, user) => { acc[user.id] = user.username; From fab7e98ff5797c5f18828cd0a7bf69e4aa3cebfb Mon Sep 17 00:00:00 2001 From: mahmutbugramert Date: Fri, 13 Dec 2024 16:01:43 +0300 Subject: [PATCH 06/17] fix: revert changes made about tags --- frontend/src/components/community/CreatePostPage.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/community/CreatePostPage.js b/frontend/src/components/community/CreatePostPage.js index ced61d14..c33c389e 100644 --- a/frontend/src/components/community/CreatePostPage.js +++ b/frontend/src/components/community/CreatePostPage.js @@ -99,18 +99,17 @@ const CreatePostPage = () => { return; } - const tags = selectedTags; + const tagIds = selectedTags.map((tag) => tag.id); const postData = { title, content: description, author: 2, liked_by: [], - tags: tags, + tags: tagIds, portfolios: [], }; try { - console.log(postData); const response = await apiClient.post("/posts/", postData); console.log("Post created successfully:", response.data); alert("Post created successfully!"); From a853fbfd4d434686b1b3bd1167420980d9a856d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Fri, 13 Dec 2024 19:46:45 +0300 Subject: [PATCH 07/17] feature: add "add tag" button. It has no functionality for now. --- .../components/community/CreatePostPage.js | 34 +++++++------------ .../src/styles/community/CreatePostPage.css | 27 ++++++++++++++- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/frontend/src/components/community/CreatePostPage.js b/frontend/src/components/community/CreatePostPage.js index c33c389e..d8301541 100644 --- a/frontend/src/components/community/CreatePostPage.js +++ b/frontend/src/components/community/CreatePostPage.js @@ -1,7 +1,7 @@ import React, { useState, useEffect, useRef } from "react"; import { useNavigate } from "react-router-dom"; import "../../styles/community/CreatePostPage.css"; -import {apiClient} from "../../service/apiClient"; +import { apiClient } from "../../service/apiClient"; const CreatePostPage = () => { const navigate = useNavigate(); @@ -29,23 +29,12 @@ const CreatePostPage = () => { }, [navigate]); useEffect(() => { - const mockTags = [ - { id: 1, name: "Stock Analysis" }, - { id: 2, name: "BIST30" }, - { id: 3, name: "S&P" }, - { id: 4, name: "NASDAQ" }, - { id: 5, name: "Dow Jones" }, - { id: 6, name: "USA" }, - { id: 7, name: "Türkiye" }, - ]; - const fetchTags = async () => { try { const response = await apiClient.get("/tags"); setAvailableTags(response.data); } catch (error) { - console.error("Failed to fetch tags, using mock data", error); - setAvailableTags(mockTags); + console.error("Failed to fetch tags!", error); } }; @@ -147,14 +136,17 @@ const CreatePostPage = () => {
- setShowTagSuggestions(true)} - /> +
+ setShowTagSuggestions(true)} + /> + +
{showTagSuggestions && (
{filteredTags.map((tag, index) => ( diff --git a/frontend/src/styles/community/CreatePostPage.css b/frontend/src/styles/community/CreatePostPage.css index 302a702e..9ea15c52 100644 --- a/frontend/src/styles/community/CreatePostPage.css +++ b/frontend/src/styles/community/CreatePostPage.css @@ -123,8 +123,14 @@ position: relative; } +.tag-input-wrapper { + display: flex; + align-items: center; + gap: 10px; +} + .tag-search-input { - width: 100%; + flex: 1; padding: 10px; font-size: 16px; border: 1px solid #ccc; @@ -217,6 +223,25 @@ background-color: #e0a800; } +.new-button { + padding: 8px 12px; + font-size: 16px; + border: none; + border-radius: 5px; + background: var(--primary-gradient); + color: white; + cursor: pointer; + transition: background 0.3s; +} + +.new-button:hover { + opacity: 0.9; +} + +body.dark-mode .new-button { + border: 1px solid var(--color-neutral-700); +} + /* Description */ .description-section { From f1af9394a27e9693c5f6126ac6993f9930469607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Fri, 13 Dec 2024 21:35:02 +0300 Subject: [PATCH 08/17] feature: Implement connection of comments with backend. --- frontend/src/components/community/PostView.js | 68 +++++++++++++++---- 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index dcbc57c4..1f395988 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -3,9 +3,10 @@ import { useParams } from "react-router-dom"; import mockPosts from "../../data/mockPosts"; import FinancialGraph from "./FinancialGraph"; import "../../styles/community/PostView.css"; -import {apiClient} from "../../service/apiClient"; +import { apiClient } from "../../service/apiClient"; import CircleAnimation from "../CircleAnimation"; import NotFound from "../notfound/NotFound"; +import UserService from "../../service/userService"; import { FaNewspaper, FaImage, @@ -38,6 +39,13 @@ const PostView = () => { } }; + const getUserName = async (userID) => { + const userData = await apiClient.get(`/users/${userID}`); + const userName = userData.data.username; + + return userName; + }; + const getColorForTag = (tag) => { const asciiValue = tag.charCodeAt(0); const colors = ["#3498db", "#e74c3c", "#2ecc71", "#f1c40f", "#9b59b6"]; @@ -55,12 +63,29 @@ const PostView = () => { try { const response = await apiClient.get(`/posts/${postId}/`); const backendPost = response.data; + + const commentsResponse = await apiClient.get( + `/comments/post-comments/${postId}` + ); + + const commentsData = commentsResponse.data; + + const backendComments = await Promise.all( + commentsData.map(async (comment) => { + const username = await getUserName(comment.user_id); + return { + "comment-id": comment.id, + user: username, + comment: comment.content, + }; + }) + ); const normalizedPost = { "post-id": backendPost.id, user: users[backendPost.author] || "Unknown", title: backendPost.title, content: [{ type: "plain-text", "plain-text": backendPost.content }], - comments: [], + comments: backendComments, likes: backendPost.liked_by.length, tags: backendPost.tags, "publication-date": new Date( @@ -95,18 +120,35 @@ const PostView = () => { }, [isUsersLoaded, postId, users]); const handleCommentChange = (e) => setCommentText(e.target.value); - const handleSubmitComment = () => { + const handleSubmitComment = async () => { if (commentText.trim()) { - const newComment = { - "comment-id": Date.now(), - user: "Current User", - comment: commentText, - }; - setPost((prevPost) => ({ - ...prevPost, - comments: [...prevPost.comments, newComment], - })); - setCommentText(""); + try { + const userId = UserService.getUserId(); + const username = UserService.getUsername(); + + const payload = { + post_id: postId, + user_id: userId, + content: commentText.trim(), + }; + + await apiClient.post("/comments/", payload); + + setPost((prevPost) => ({ + ...prevPost, + comments: [ + ...prevPost.comments, + { + "comment-id": Date.now(), // Temporary ID until refreshed + user: username, + comment: commentText.trim(), + }, + ], + })); + setCommentText(""); + } catch (error) { + console.error("Error submitting comment:", error); + } } }; From 1f7f156745ae7251603093c7461972de8dfa8628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Fri, 13 Dec 2024 22:47:47 +0300 Subject: [PATCH 09/17] fix: do not send user ID while posting comments. --- frontend/src/components/community/PostView.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index 1f395988..13628a8a 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -123,12 +123,10 @@ const PostView = () => { const handleSubmitComment = async () => { if (commentText.trim()) { try { - const userId = UserService.getUserId(); const username = UserService.getUsername(); const payload = { post_id: postId, - user_id: userId, content: commentText.trim(), }; From 31b52a558cb21a68d02705a6886c7473f52e7956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Sat, 14 Dec 2024 01:00:30 +0300 Subject: [PATCH 10/17] feature: implement connection of like, unlike with backend. --- frontend/src/components/community/PostView.js | 61 +++++++++++++++++-- frontend/src/styles/community/PostView.css | 4 ++ 2 files changed, 61 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index 13628a8a..24fc5776 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -25,6 +25,7 @@ const PostView = () => { const [tags, setTags] = useState([]); const [users, setUsers] = useState({}); const [isUsersLoaded, setIsUsersLoaded] = useState(false); + const [isLikedByUser, setIsLikedByUser] = useState(false); const fetchUsers = async () => { try { const response = await apiClient.get("/users"); @@ -63,7 +64,7 @@ const PostView = () => { try { const response = await apiClient.get(`/posts/${postId}/`); const backendPost = response.data; - + // console.log("backendpost", backendPost); const commentsResponse = await apiClient.get( `/comments/post-comments/${postId}` ); @@ -80,6 +81,18 @@ const PostView = () => { }; }) ); + + const loggedInUser = parseInt(UserService.getUserId(), 10); // Adjust as needed to get the user's ID + console.log("backen", backendPost); + const userHasLiked = backendPost.liked_by.includes(loggedInUser); + console.log( + "loogedinuseıd", + loggedInUser, + "likedby", + backendPost.liked_by[0] + ); + console.log("userhaslike", userHasLiked); + const normalizedPost = { "post-id": backendPost.id, user: users[backendPost.author] || "Unknown", @@ -92,7 +105,9 @@ const PostView = () => { backendPost.created_at ).toLocaleDateString(), }; - + console.log("noemal", normalizedPost); + setIsLikedByUser(userHasLiked); // Update the state + console.log(isLikedByUser); setPost(normalizedPost); } catch (error) { console.error("Error fetching post:", error); @@ -150,6 +165,41 @@ const PostView = () => { } }; + const handleToggleLike = async () => { + try { + const endpoint = isLikedByUser ? `/like` : `/like`; // Reuse the same endpoint for toggling + const payload = { post_id: postId }; + + await apiClient.post(endpoint, payload); + + // Update the UI to reflect the new like/unlike state + setPost((prevPost) => ({ + ...prevPost, + likes: isLikedByUser ? prevPost.likes - 1 : prevPost.likes + 1, // Increment or decrement likes + })); + + setIsLikedByUser((prevLiked) => !prevLiked); // Toggle like state + } catch (error) { + console.error(`Error toggling like state: ${error.message}`); + } + }; + + // const handleLike = async () => { + // const payload = { + // post_id: postId, + // }; + + // await apiClient.post(`/like`, payload); + // }; + + // const handleDislike = async () => { + // const payload = { + // post_id: postId, + // }; + + // await apiClient.post(`/dislike`, payload); + // }; + if (loading) { return (

@@ -252,8 +302,11 @@ const PostView = () => {

- -
-
- {post.tags.map((tag, index) => ( - - {tag} - - ))} -
+ return ( +
+
+

{post.title}

+

+ Published on:{" "} + {new Date(post["publication-date"]).toLocaleDateString()}{" "} + by {post["user"]} +

+
+

{post.content[0]["plain-text"]}

+
+
+ + {post.likes} + + + {post.comments.length} +
- ); + +
+
+ {post.tags.map((tag, index) => ( + + {tag} + + ))} +
+
+ ); }; export default PostCard; diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index f811fcad..3b6af639 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -201,7 +201,10 @@ const PostView = () => { {tag} From 6910a5fdc4ec6b960dc0858abf663d31781d7088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Sat, 14 Dec 2024 03:42:05 +0300 Subject: [PATCH 15/17] fix: Fetch usernames by their ID instead of fetching them all. --- frontend/src/components/community/PostView.js | 49 ++++++------------- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index 3b6af639..5a4e9ff6 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -23,42 +23,25 @@ const PostView = () => { const [post, setPost] = useState(null); const [commentText, setCommentText] = useState(""); const [tags, setTags] = useState([]); - const [users, setUsers] = useState({}); - const [isUsersLoaded, setIsUsersLoaded] = useState(false); const [isLikedByUser, setIsLikedByUser] = useState(false); - const fetchUsers = async () => { + const getUserName = async (userID) => { try { - const response = await apiClient.get("/users"); - const usersById = response.data.reduce((acc, user) => { - acc[user.id] = user.username; - return acc; - }, {}); - setUsers(usersById); - setIsUsersLoaded(true); + const userData = await apiClient.get(`/users/${userID}`); + const userName = userData.data.username; + return userName; } catch (error) { - console.error("Error fetching users:", error); + console.error("Error fetching user name:", error); + return "Unknown"; } }; - const getUserName = async (userID) => { - const userData = await apiClient.get(`/users/${userID}`); - const userName = userData.data.username; - - return userName; - }; - const getColorForTag = (tag) => { - const asciiValue = tag.charCodeAt(0); + const tagName = typeof tag === "string" ? tag : tag.name; + const asciiValue = tagName.charCodeAt(0); const colors = ["#3498db", "#e74c3c", "#2ecc71", "#f1c40f", "#9b59b6"]; return colors[asciiValue % 5]; }; - useEffect(() => { - if (!isUsersLoaded) { - fetchUsers(); - } - }, [isUsersLoaded]); - useEffect(() => { const fetchBackendPost = async () => { try { @@ -87,7 +70,7 @@ const PostView = () => { const normalizedPost = { "post-id": backendPost.id, - user: users[backendPost.author] || "Unknown", + user: await getUserName(backendPost.author), title: backendPost.title, content: [{ type: "plain-text", "plain-text": backendPost.content }], comments: backendComments, @@ -107,7 +90,7 @@ const PostView = () => { } }; - if (isUsersLoaded) { + if (postId) { const fetchData = async () => { const mockPost = mockPosts.find( (post) => post["post-id"] === parseInt(postId) @@ -115,14 +98,15 @@ const PostView = () => { if (mockPost) { setPost(mockPost); setTags(mockPost.tags); + setLoading(false); } else { await fetchBackendPost(); } - setLoading(false); }; + fetchData(); } - }, [isUsersLoaded, postId, users]); + }, [postId]); const handleCommentChange = (e) => setCommentText(e.target.value); const handleSubmitComment = async () => { @@ -162,13 +146,12 @@ const PostView = () => { await apiClient.post(endpoint, payload); - // Update the UI to reflect the new like/unlike state setPost((prevPost) => ({ ...prevPost, - likes: isLikedByUser ? prevPost.likes - 1 : prevPost.likes + 1, // Increment or decrement likes + likes: isLikedByUser ? prevPost.likes - 1 : prevPost.likes + 1, })); - setIsLikedByUser((prevLiked) => !prevLiked); // Toggle like state + setIsLikedByUser((prevLiked) => !prevLiked); } catch (error) { console.error(`Error toggling like state: ${error.message}`); } @@ -202,7 +185,7 @@ const PostView = () => { key={index} className="tag" style={{ - backgroundColor: getColorForTag(tag.name), + backgroundColor: getColorForTag(tag), color: "#ffffff", }} > From 2734fbf59810d07321be4d2c8607e35c087dc545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Sat, 14 Dec 2024 03:42:27 +0300 Subject: [PATCH 16/17] fix: mock data tag error. --- frontend/src/components/community/PostCard.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/community/PostCard.js b/frontend/src/components/community/PostCard.js index 4f526aa0..9b352796 100644 --- a/frontend/src/components/community/PostCard.js +++ b/frontend/src/components/community/PostCard.js @@ -4,7 +4,8 @@ import { useNavigate } from "react-router-dom"; import "../../styles/community/PostCard.css"; const getColorForTag = (tag) => { - const asciiValue = tag.charCodeAt(0); + const tagName = typeof tag === "string" ? tag : tag.name; + const asciiValue = tagName.charCodeAt(0); const colors = ["#3498db", "#e74c3c", "#2ecc71", "#f1c40f", "#9b59b6"]; return colors[asciiValue % 5]; }; @@ -48,7 +49,7 @@ const PostCard = ({ post }) => { {tag} From 78c35e032358ff79b96854dc33879f9f6a453df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mahmut=20Bu=C4=9Fra=20Mert?= Date: Sat, 14 Dec 2024 03:46:56 +0300 Subject: [PATCH 17/17] fix: display nothing when there is no tags. --- frontend/src/components/community/PostView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/community/PostView.js b/frontend/src/components/community/PostView.js index 5a4e9ff6..8736c4e1 100644 --- a/frontend/src/components/community/PostView.js +++ b/frontend/src/components/community/PostView.js @@ -193,7 +193,7 @@ const PostView = () => { )) ) : ( -

Loading tags...

+

)}