From 5d45ef57b3f43fc7c6161cd1dad6177542719254 Mon Sep 17 00:00:00 2001 From: huscivi Date: Mon, 25 Dec 2023 23:44:33 +0300 Subject: [PATCH 1/2] lfg member check --- app/frontend/src/pages/LfgPage/EditLfg.js | 2 +- app/frontend/src/pages/LfgPage/Lfg.js | 32 ++++++++++++++++++++++- app/frontend/src/pages/LfgPage/LfgPage.js | 2 -- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/frontend/src/pages/LfgPage/EditLfg.js b/app/frontend/src/pages/LfgPage/EditLfg.js index 2ba8692b..8432da7b 100644 --- a/app/frontend/src/pages/LfgPage/EditLfg.js +++ b/app/frontend/src/pages/LfgPage/EditLfg.js @@ -130,7 +130,7 @@ export default function EditLfg(props) { - Create Lfg + Edit Lfg diff --git a/app/frontend/src/pages/LfgPage/Lfg.js b/app/frontend/src/pages/LfgPage/Lfg.js index 9ee4af8f..7009c044 100644 --- a/app/frontend/src/pages/LfgPage/Lfg.js +++ b/app/frontend/src/pages/LfgPage/Lfg.js @@ -80,6 +80,33 @@ const Lfg = () => { } }; + const [isMember, setIsMember] = React.useState(true); + + const isUserGroupMember = async (user, group) => { + try { + const userId = user?.userId; + const members = group?.members; + + if (!userId || !members) { + return false; + } + + const isMember = members.some(member => member.userId === userId); + return isMember; + } catch (error) { + return false; + } + }; + + useEffect(() => { + const fetchIsMember = async () => { + const result = await isUserGroupMember(currentUser, lfg); + setIsMember(result); + }; + + fetchIsMember(); + }, [currentUser, lfg]); + return ( <> @@ -99,18 +126,21 @@ const Lfg = () => { /> ))} + {isMember && + > } + {isMember &&
+ }
diff --git a/app/frontend/src/pages/LfgPage/LfgPage.js b/app/frontend/src/pages/LfgPage/LfgPage.js index 7d6cb365..4cecaf91 100644 --- a/app/frontend/src/pages/LfgPage/LfgPage.js +++ b/app/frontend/src/pages/LfgPage/LfgPage.js @@ -1,6 +1,5 @@ import React, { useState, useEffect } from 'react'; import Navbarx from '../../components/navbar/Navbar'; -// import { getAllPosts } from '../../services/postService'; import LfgCard from "./LfgCard"; import {getUserInfoBySessionId} from "../../services/userService"; import {getAllGroups} from "../../services/lfgService"; @@ -10,7 +9,6 @@ export default function LfgPage() { const [groups, setGroups] = useState([]); const [isLoading, setIsLoading] = useState(true); -// const [filteredPosts, setFilteredPosts] = useState([]); const [currentUser, setCurrentUser] = useState(null); From 4c3b80dc3c2e7410f825bea4d3275dfe73028a0c Mon Sep 17 00:00:00 2001 From: huscivi Date: Mon, 25 Dec 2023 23:56:30 +0300 Subject: [PATCH 2/2] minor change --- app/frontend/src/pages/HomePage/Group.js | 7 +++++-- app/frontend/src/pages/LfgPage/LfgCard.js | 8 +++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/frontend/src/pages/HomePage/Group.js b/app/frontend/src/pages/HomePage/Group.js index 8565ed52..f2d27b52 100644 --- a/app/frontend/src/pages/HomePage/Group.js +++ b/app/frontend/src/pages/HomePage/Group.js @@ -1,4 +1,5 @@ import React from 'react' +import {Link} from "react-router-dom"; const Group = ({ item }) => { return ( @@ -13,8 +14,10 @@ const Group = ({ item }) => { Players: {item.totalMembers}/{item.memberCapacity} -
diff --git a/app/frontend/src/pages/LfgPage/LfgCard.js b/app/frontend/src/pages/LfgPage/LfgCard.js index 3495aec6..e96dd823 100644 --- a/app/frontend/src/pages/LfgPage/LfgCard.js +++ b/app/frontend/src/pages/LfgPage/LfgCard.js @@ -150,14 +150,16 @@ const LfgCard = ({ group, currentUser }) => {

{group.description}

-
+
+
+

Platform: {group.requiredPlatform}

+
-

Game: {group.relatedGame}

Language: {group.requiredLanguage}

-

Platform: {group.requiredPlatform}

Mic/Cam: {group.micCamRequirement ? "yes" : "no"}

+ {false &&

Game: {group.relatedGame}

}