From ec97b714778994ea81732ca68750c617834a110a Mon Sep 17 00:00:00 2001
From: Guilherme Eduardo <gegs23@inf.ufpr.br>
Date: Fri, 18 Apr 2025 11:10:56 -0300
Subject: [PATCH] Issue #299: FIX change name share button on profile page

---
 src/app/perfil/[id]/components/UserCard.js | 47 ++++++++++++++++++----
 1 file changed, 39 insertions(+), 8 deletions(-)

diff --git a/src/app/perfil/[id]/components/UserCard.js b/src/app/perfil/[id]/components/UserCard.js
index bc6e0d74..f31a2781 100644
--- a/src/app/perfil/[id]/components/UserCard.js
+++ b/src/app/perfil/[id]/components/UserCard.js
@@ -19,6 +19,7 @@ import FollowersCards from "./FollowersCards";
 import ProfileComplaints from "./ProfileComplaints";
 import ProfileAchievementsMenu from "./ProfileAchievementsMenu";
 import { Person } from "@mui/icons-material";
+import { TramSharp } from '@mui/icons-material';
 
 const roles = [
     {
@@ -103,6 +104,8 @@ export default function UserCard({ profileData, idLogin, achievements, progresse
     const [translateItems, setTranslateItems] = useState("")
     const [optButton, setOptButton] = useState(0)
     const [verifyCurator, setVerifyCurator] = useState(false)
+    const [userVerified, setUserVerified] = useState (false)
+    const [medalActive, setMedalActive] = useState(0)
 
 
     /**
@@ -150,7 +153,12 @@ export default function UserCard({ profileData, idLogin, achievements, progresse
                 })
         }
 
+        //Conta quantas medalhas ativas o usuário possui
+        const countMedalBeingUsed = items?.filter (item => item.being_used).length;
+        setMedalActive(countMedalBeingUsed)
+
         fetchFollowers()
+        verifier()        
 
         /**
          * Função que faz a tradução conforme os cargos do usuário.
@@ -171,10 +179,30 @@ export default function UserCard({ profileData, idLogin, achievements, progresse
         }
 
         itemsRoles()
-            .then(roles => setTranslateItems(roles))
+            .then(roles => setTranslateItems(roles))        
     }, [profileData])
 
+    // Função que análisa se o usuário é considerado "verificado" conforme cargo
+    const verifier = async () => {
+        const all_roles = [
+          "teacher", "admin", "curator", "moderator",
+          "supervisor", "editor", "partner", "publisher", "submitter"
+        ];
+      
+        // Extrai todos os nomes dos cargos do usuário
+        const user_roles = profileData["roles"].map(role => role.name);
+
+        // Verifica se algum cargo do usuário está na lista de roles permitidos
+        const verifier_user_roles = user_roles.find(role => all_roles.includes(role));
+      
+        if (verifier_user_roles) {
+          setUserVerified(true);
+        }
+      }; 
+      
 
+            
+    
     /*
      * Menu de seleção do usuário 
      * Verifica se o usuário está logado para definir as opções
@@ -213,7 +241,7 @@ export default function UserCard({ profileData, idLogin, achievements, progresse
 
     }
 
-    console.log ("teste", items)
+    // const cargo = 
 
 
     return (
@@ -233,7 +261,7 @@ export default function UserCard({ profileData, idLogin, achievements, progresse
                         <div className=' flex flex-col justify-start '>
                             <div className='flex flex-row max-sm:flex-col-reverse'>
 
-                                <div className={`flex flex-row w-2/3 max-sm:w-full items-center text-darkGray-HC-white font-bold max-sm:text-3xl text-4xl max-sm:mr-5  max-sm:mb-5 ${items.length === 0 ? "mb-3" : ""}`}>
+                            <div className={`flex flex-row w-2/3 max-sm:w-full items-center text-darkGray-HC-white font-bold max-sm:text-3xl text-4xl max-sm:mr-5  max-sm:mb-5 ${medalActive === 0 ? "mb-3" : ""}`}>
                                     <img src="/usuario-perfil.svg" alt="perfil" className='flex aspect-square mr-4 max-lg:mx-4 w-[28px] h-[28px] rounded-full' />
                                     <div className='shrink-0 max-lg:w-[20px] max-lg:h-[20px] h-[28px] p-0 m-0' /> {profileData["name"]}
 
@@ -243,18 +271,21 @@ export default function UserCard({ profileData, idLogin, achievements, progresse
 
                             </div>
 
-                            {profileData["email"] && profileData["id"] !== 35342 && (
+                            {/* {profileData["email"] && profileData["id"] !== 35342 && (
                                 <div className='mb-3 truncate flex flex-row items-center text-darkGray-HC-white max-sm:text-base text-2xl'>
-                                    <img src="/usuario-verificado.svg" alt="ocupacao" className='flex aspect-square mr-4 max-lg:mx-4 w-[28px] h-[28px] rounded-full' />
+                                    <img src="/ocupacao.svg" alt="ocupacao" className='flex aspect-square mr-4 max-lg:mx-4 w-[28px] h-[28px] rounded-full' />
                                     <div className='shrink-0 h-[28px] max-lg:w-[20px] max-lg:h-[20px]' />
                                     {profileData["email"]}
                                 </div>
-                            )}
+                            )}  */}
 
                             <div className='mb-3'>
-                                {translateItems &&
+                                {translateItems && 
                                     <div className='flex flex-row items-center mt-1 text-darkGray-HC-white max-sm:text-base text-xl'>
-                                        <img src="/ocupacao.svg" alt="verificado" className='flex aspect-square mr-4 max-lg:mx-4 w-[28px] h-[28px] rounded-full' />
+                                        {userVerified ?  <img src="/usuario-verificado.svg" alt="verificado" className='flex aspect-square mr-4 max-lg:mx-4 w-[28px] h-[28px] rounded-full' />
+                                            :  
+                                            null
+                                        }                                        
                                         <div className='shrink-0 h-[28px] max-lg:w-[20px] max-lg:h-[20px]' />
                                         {translateItems}
                                     </div>
-- 
GitLab