From 7e80b6a3d28a4a7ac36f4eeba41bdfdf4a127d56 Mon Sep 17 00:00:00 2001
From: Gustavo S Frehse <gsf20@inf.ufpr.br>
Date: Thu, 24 Apr 2025 10:05:53 -0300
Subject: [PATCH] REMOVE userstores, use loginhandlers

---
 src/app/components/MenuProfile.js | 37 ++++++++++++++-----------------
 src/app/components/SideBar.js     | 17 +++++++-------
 src/app/handlers/loginHandler.js  |  7 ++++--
 3 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/src/app/components/MenuProfile.js b/src/app/components/MenuProfile.js
index a4fa7f39..423b6068 100644
--- a/src/app/components/MenuProfile.js
+++ b/src/app/components/MenuProfile.js
@@ -11,7 +11,7 @@ import {
   getStoredValue,
   removeFromLocalStorage,
 } from "../handlers/localStorageHandler";
-import { isLoggedIn } from "../handlers/loginHandler";
+import { isLoggedIn, useLoggedIn, userData } from "../handlers/loginHandler";
 import AccountCircleRoundedIcon from '@mui/icons-material/AccountCircleRounded';
 import SettingsRoundedIcon from '@mui/icons-material/SettingsRounded';
 import PrivacyTipRoundedIcon from '@mui/icons-material/PrivacyTipRounded';
@@ -80,20 +80,17 @@ function getRandomBg(id) {
  */
 export default function AccountMenu() {
   const [anchorEl, setAnchorEl] = useState(null);
-  const [userData, setUserData] = useState({});
+  const [dataUser, setDataUser] = useState({});
   const [id, setId] = useState(null);
-  const [logged, setLogged] = useState(false);
   const open = Boolean(anchorEl);
-
-  const router = useRouter();
+  const loggedIn = useLoggedIn();
 
   useEffect(() => {
-    if (isLoggedIn()) {
-      let data = JSON.parse(getStoredValue("user_data"));
-      setId(data["id"]);
+    if (loggedIn) {
+      let data = userData();
+      setId(data?.user?.id);
     }
-    setLogged(isLoggedIn());
-  }, []);
+  }, [loggedIn]);
 
   const handleClick = (event) => {
     setAnchorEl(event.currentTarget);
@@ -117,13 +114,13 @@ export default function AccountMenu() {
     let token = getStoredValue("access_token");
     if (token) {
       let user = getStoredValue("user_data");
-      setUserData(JSON.parse(user));
+      setDataUser(JSON.parse(user));
     }
   }, []);
 
   return (
     <>
-      {logged ? (
+      {loggedIn ? (
         <Box className="mr-14 flex align-center">
           <IconButton
             onClick={handleClick}
@@ -134,13 +131,13 @@ export default function AccountMenu() {
             title="Meu Perfil"
             alt="Acessar meu perfil"
           >
-            {(userData["avatar_file_name"] === "") || (userData["avatar_file_name"] === null) ? (
-              <div className={`flex items-center max-sm:-ml-px justify-center text-xl font-bold text-ice-HC-dark bg-turquoise-HC-white rounded-full h-[38px] w-[38px] ${getRandomBg(userData["id"])}`} >{userData["name"][0]}</div>
+            {(dataUser["avatar_file_name"] === "") || (dataUser["avatar_file_name"] === null) ? (
+              <div className={`flex items-center max-sm:-ml-px justify-center text-xl font-bold text-ice-HC-dark bg-turquoise-HC-white rounded-full h-[38px] w-[38px] ${getRandomBg(dataUser["id"])}`} >{dataUser["name"][0]}</div>
             ) : (
               <Avatar
                 src={
                   mecredURL +
-                  userData["avatar_file_name"]
+                  dataUser["avatar_file_name"]
                 }
                 sx={{ width: 38, height: 38 }}
               />
@@ -175,20 +172,20 @@ export default function AccountMenu() {
       }}
       >
         <MenuItem className="ml-1" sx={{ 'pointer-events': 'none' }} >
-          {(userData["avatar_file_name"] === "") || (userData["avatar_file_name"] === null) ? (
-            <div className={`flex items-center justify-center pt-1 text-xl font-bold text-ice-HC-dark bg-turquoise-HC-white rounded-full h-[38px] w-[38px] ${getRandomBg(userData["id"])}`} >{userData["name"][0]}</div>
+          {(dataUser["avatar_file_name"] === "") || (dataUser["avatar_file_name"] === null) ? (
+            <div className={`flex items-center justify-center pt-1 text-xl font-bold text-ice-HC-dark bg-turquoise-HC-white rounded-full h-[38px] w-[38px] ${getRandomBg(dataUser["id"])}`} >{dataUser["name"][0]}</div>
           ) : (
             <Avatar
               src={
                 mecredURL +
-                userData["avatar_file_name"]
+                dataUser["avatar_file_name"]
               }
               sx={{ width: 38, height: 38 }}
             />
           )}
           <div className="grid grid-rows-2 text-darkGray-HC-white ml-4 mt-2 grid-flow-row">
-            <p className="row-span-1"> {userData["name"]} </p>
-            <p className="row-span-2 text-xs"> {userData["uid"]} </p>
+            <p className="row-span-1"> {dataUser["name"]} </p>
+            <p className="row-span-2 text-xs"> {dataUser["uid"]} </p>
           </div>
         </MenuItem>
         <hr className="border-mediumGray-HC-white h-1 my-2 "/>
diff --git a/src/app/components/SideBar.js b/src/app/components/SideBar.js
index c49cc1dd..56834a2b 100644
--- a/src/app/components/SideBar.js
+++ b/src/app/components/SideBar.js
@@ -10,7 +10,7 @@ import VerifiedIcon from "@mui/icons-material/Verified";
 import { usePathname, useSearchParams } from "next/navigation";
 import { Person } from "@mui/icons-material";
 import FileUploadIcon from '@mui/icons-material/FileUpload';
-import { isLoggedIn } from "../handlers/loginHandler";
+import { isLoggedIn, useLoggedIn, userData } from "../handlers/loginHandler";
 import NeedLoginModal from "./needLoginModal";
 import {
   getStoredValue,
@@ -92,6 +92,7 @@ export default function SideBar({ setFilterState, filterState }) {
   let searchParams = useSearchParams();
   const page = searchParams.get('page')
   const pathname = usePathname();
+  const loggedIn = useLoggedIn();
 
   const getHref = (href) => {
     switch (href) {
@@ -110,10 +111,9 @@ export default function SideBar({ setFilterState, filterState }) {
 
   const [needLoginOpen, setNeedLoginOpen] = useState(false);
 
-
   const handleOpenLogin = () => {
 
-    if (!isLoggedIn()) {
+    if (!loggedIn) {
       setNeedLoginOpen(true);
     }
   };
@@ -121,11 +121,12 @@ export default function SideBar({ setFilterState, filterState }) {
   const [id, setId] = useState(null);
 
   useEffect(() => {
-    if (isLoggedIn()) {
-      let data = JSON.parse(getStoredValue("user_data"));
-      setId(data["id"]);
+    if (loggedIn) {
+      let data = userData();
+      console.log(data, "ALKSDJLAKSJD");
+      setId(data?.["id"]);
     }
-  }, []);
+  }, [loggedIn]);
 
   return (
     <>
@@ -137,7 +138,7 @@ export default function SideBar({ setFilterState, filterState }) {
             return (
               <Link
                 onClick={item.href === "/publicar" ? handleOpenLogin : () => { }}
-                href={item.href === "/publicar" ? (isLoggedIn() ? "/publicar" : "") : getHref(item.href)}
+                href={item.href === "/publicar" ? (loggedIn ? "/publicar" : "") : getHref(item.href)}
                 key={index}
                 alt={item.title}
                 title={item.title}
diff --git a/src/app/handlers/loginHandler.js b/src/app/handlers/loginHandler.js
index a0392f08..09ebd879 100644
--- a/src/app/handlers/loginHandler.js
+++ b/src/app/handlers/loginHandler.js
@@ -68,16 +68,19 @@ export function logOut() {
 
 export function userData() {
   const dataString = localStorage.getItem('user_data');
-  
+
   if (!dataString)
     return undefined;
 
   const data = JSON.parse(dataString);
+  console.log("USER DATA", data);
   return data;
 }
 
 export async function fetchUser() {
-  const response = await mecredApi.get('/api/user/me');
+  const response = await mecredApi.get('/api/user/me',
+    { headers: authHeaders() }
+  );
   const dataString = JSON.stringify(response.data);
   localStorage.setItem('user_data', dataString);
 }
\ No newline at end of file
-- 
GitLab