From b2aed2cf0db5350547eb2703ec0e84be9b66842a Mon Sep 17 00:00:00 2001
From: Gustavo S Frehse <gsf20@inf.ufpr.br>
Date: Mon, 19 May 2025 09:58:49 -0300
Subject: [PATCH] ADD callback to login on govbr

---
 src/app/components/SideBar.js    | 16 ++++++++--------
 src/app/entrar/page.js           | 13 +++++++++----
 src/app/handlers/loginHandler.js |  8 ++++++--
 3 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/src/app/components/SideBar.js b/src/app/components/SideBar.js
index 46c95be9..250ff3a5 100644
--- a/src/app/components/SideBar.js
+++ b/src/app/components/SideBar.js
@@ -102,14 +102,6 @@ export default function SideBar({ setFilterState, filterState }) {
   const loggedIn = useLoggedIn();
   const [id, setId] = useState(null);
 
-  useEffect(() => {
-    if (loggedIn) {
-      let data = userData();
-      console.log(data, "ALKSDJLAKSJD");
-      setId(data?.user["id"]);
-    }
-  }, [loggedIn]);
-
   const getHref = (href) => {
     switch (href) {
       case "/sobre":
@@ -144,6 +136,14 @@ export default function SideBar({ setFilterState, filterState }) {
     }
   };
 
+  useEffect(() => {
+    if (loggedIn) {
+      let data = userData();
+      console.log(data, "ALKSDJLAKSJD");
+      setId(data?.["id"]);
+    }
+  }, [loggedIn]);
+
   return (
     <>
       <NeedLoginModal open={needLoginOpen} setOpen={setNeedLoginOpen} />
diff --git a/src/app/entrar/page.js b/src/app/entrar/page.js
index 0703538a..41d85144 100644
--- a/src/app/entrar/page.js
+++ b/src/app/entrar/page.js
@@ -13,7 +13,7 @@ import { ThemeProvider } from "@emotion/react";
 import theme from "../theme";
 import LoginInfo from "./components/LoginInfo";
 import AcessibilityBar from "../components/AcessibilityBar";
-import { logIn } from "../handlers/loginHandler";
+import { logIn, updateAccessToken } from "../handlers/loginHandler";
 
 function Login() {
   const [userEmail, setUserEmail] = useState("");
@@ -22,19 +22,24 @@ function Login() {
   const [suggestionMessage, setSuggestionMessage] = useState("");
   const [isFirstLetterUpperCase, setIsFirstLetterUpperCase] = useState(false);
   const searchParams = useSearchParams();
-  const access_token = getStoredValue("access_token");
+  const router = useRouter();
+
+  if (searchParams.has("token")) {
+    updateAccessToken(searchParams.get("token")).then(() => {
+      router.push("/sobre");
+    })
+  }
 
   // Obtendo os parâmetros de busca
   const redirectUrl = searchParams.get("redirect")
     ? searchParams.get("redirect") + (searchParams.get("params") ? `?${searchParams.get("params")}` : '')
     : "/sobre"; // Redireciona para /sobre se não houver valor
-  const router = useRouter();
 
   const handleEmailChange = (e) => {
     const emailValue = e.target.value;
     setUserEmail(emailValue);
 
-    // Verifica se a primeira letra é maiúscula
+  // Verifica se a primeira letra é maiúscula
   if (emailValue.length > 0) { 
     const firstLetter = emailValue.charAt(0);
     setIsFirstLetterUpperCase(firstLetter === firstLetter.toUpperCase());
diff --git a/src/app/handlers/loginHandler.js b/src/app/handlers/loginHandler.js
index 72f45758..a7445782 100644
--- a/src/app/handlers/loginHandler.js
+++ b/src/app/handlers/loginHandler.js
@@ -56,11 +56,15 @@ export function logIn(email, password) {
     })
     .then((response) => {
       const token = response.data['token'];
-      localStorage.setItem('token', token);
-      fetchUser();
+      updateAccessToken(token);
     });
 }
 
+export async function updateAccessToken(token) {
+  localStorage.setItem('token', token);
+  await fetchUser();
+}
+
 export function logOut() {
   localStorage.removeItem('token');
   localStorage.removeItem('user_data');
-- 
GitLab