diff --git a/src/app/components/MenuProfile.js b/src/app/components/MenuProfile.js index c191ca2c06df271785ec7416c828702e9bfb368d..c74d4b5f62367435abfc18cb4d9f852b65a506e6 100644 --- a/src/app/components/MenuProfile.js +++ b/src/app/components/MenuProfile.js @@ -103,7 +103,7 @@ export default function AccountMenu() { return ( <> - {logged ? ( + {loggedIn ? ( <Box className="mr-5 flex align-center"> <IconButton onClick={handleClick} diff --git a/src/app/components/Notifications.js b/src/app/components/Notifications.js index 83aa18451e265a6f3567418ee74c35fb70582761..9345ba8e033931b039171a6a87a6e6c5a7056d93 100644 --- a/src/app/components/Notifications.js +++ b/src/app/components/Notifications.js @@ -35,7 +35,7 @@ export default function Notifications({id}) { //chama funcao getNotifications() - }, [loggedIn, uid, client, token]) + }, [loggedIn]) const postViewNotification = async (payload) => { console.log("oiii", payload) @@ -53,4 +53,4 @@ export default function Notifications({id}) { return <ModalNotifications countNotifications={countNotifications} notifications={notifications} postViewNotification={postViewNotification} /> -} \ No newline at end of file +} diff --git a/src/app/entrar/page.js b/src/app/entrar/page.js index 59444d6a8ddcdf8893dda1fa7fa5819004a3d593..b0858217e9b8a440303fe7ecbc8bb8048627582f 100644 --- a/src/app/entrar/page.js +++ b/src/app/entrar/page.js @@ -65,9 +65,6 @@ function Login() { const userLogin = async (event) => { event.preventDefault(); await logIn(userEmail, userPassword) - .then((res) => { - console.log(res); - }) .catch((error) => { console.log(error); setErrorMessage(error['response']['data']['error']['message']); diff --git a/src/app/perfil/[id]/components/UserCard.js b/src/app/perfil/[id]/components/UserCard.js index fd8b617e9836bfa16f98282996364e46366087cf..3d51fb096bb920b8a1268cb805c37cafbe0abec2 100644 --- a/src/app/perfil/[id]/components/UserCard.js +++ b/src/app/perfil/[id]/components/UserCard.js @@ -116,7 +116,7 @@ export default function UserCard({ profileData, idLogin, achievements, progresse useEffect(() => { if (!loggedIn) return; - setProfileInfo(userData()["user"]) + setProfileInfo(userData()) console.log(profileData) const fetchFollowers = async () => { await mecredApi.get(`public/user/followers/${profileData.id}`, { @@ -303,4 +303,4 @@ export default function UserCard({ profileData, idLogin, achievements, progresse </div> </div> ); -} \ No newline at end of file +} diff --git a/src/app/perfil/[id]/page.js b/src/app/perfil/[id]/page.js index 95cd964f7a7b7f1e8d94e7f185488dd99f06ad7c..40bdd07391bd883076e47d792529b6ae86fdb5a5 100644 --- a/src/app/perfil/[id]/page.js +++ b/src/app/perfil/[id]/page.js @@ -1,5 +1,5 @@ -"use client" -import UserCard from "./components/UserCard" +"use client"; +import UserCard from "./components/UserCard"; import { getStoredValue } from "../../handlers/localStorageHandler"; import { useEffect, useState } from "react"; import Overlay from "../../components/Overlay"; @@ -7,124 +7,89 @@ import mecredApi from "@/axiosConfig"; import { authHeaders, isLoggedIn, userData } from "@/app/handlers/loginHandler"; import ErrorComponent from "@/app/components/ErrorComponent"; -export default function Perfil({ params }) { - const [profileData, setProfileData] = useState(null); - const [achievements, setAchievements] = useState(null); - const [items, setItems] = useState(null); - const [store, setStore] = useState(null); - const [progresses, setProgresses] = useState(null); - const [error, setError] = useState(false) - const [idLogin, setIdLogin] = useState(0) - - - const optTab = getStoredValue("tab"); - - /** - * Se o usuário não estiver logado faz apenas uma requisição simples das informações do usuário - * Se estiver logado, verifica se o perfil acessado (params.id) é o perfil do usuário logado, pois algumas ações são diferentes - * Atribui o id do usuário logado à idLogin para futuras verificações - */ - useEffect(() => { - - /* Pega as estatisticas do usuario - Mostra na barra de stats mesmo deslogado - */ - const fetchAchievements = async (id) => { - await mecredApi - .get(`public/userAchievements/${id}/achievements`) - .then(({ data }) => { - setAchievements(data); - }) - .catch(() => setError(true)) - } - - fetchAchievements(params.id); - - // const fetchProgresses = async (id) => { - // await mecredApi - // .get(`/user_progresses/${id}`) - // .then(({ data }) => { - // setProgresses(data); - // }) - // .catch(() => setError(true)) - // } - - // fetchProgresses(params.id) - - const fetchItems = async (id) => { - await mecredApi - .get(`public/user-items/${id}/items?limit=1000`) - .then(({ data }) => { - setItems(data); - }) - .catch(() => setError(true)) - } - - fetchItems(params.id) - - if (isLoggedIn()) { - let data = userData() - - const fetchUser = async (id) => { - await mecredApi - .get(`api/user/${id}`, { - headers: authHeaders() - }) - .then(({ data }) => { - console.log(data) - setProfileData(data); - }) - .catch(() => setError(true)) - } - - fetchUser(params.id) - setIdLogin(data["user"]["id"]) - - const fetchStore = async (id) => { - await mecredApi - .get(`public/user-items/${id}/items?filter={"state" : "active"}&item_type=badge&unlock_rule=purchase&limit=1000`) - .then(({ data }) => { - setStore(data) - console.log(data) - }) - .catch(() => setError(true)) - } - - fetchStore(params.id) - - } else { - const fetchUser = async (id) => { - await mecredApi - .get(`api/user/${id}`) - .then(({ data }) => { - setProfileData(data); - }) - .catch(() => setError(true)) - } - - fetchUser(params.id) - } - - }, [params]) - - return ( - <> - <Overlay type="twoColumns"> - {error ? <ErrorComponent name="Usuário" /> : - (profileData && - <UserCard - profileData={profileData} - idLogin={idLogin} - achievements={achievements} - progresses={progresses} - setItems={setItems} - items={items} - store={store} - tab={optTab} - /> - )} - </Overlay> - </> - ); +export default function Perfil() { + const [profileData, setProfileData] = useState(null); + const [achievements, setAchievements] = useState(null); + const [items, setItems] = useState(null); + const [store, setStore] = useState(null); + const [progresses, setProgresses] = useState(null); + const [error, setError] = useState(false); + + const optTab = getStoredValue("tab"); + + useEffect(() => { + if (!isLoggedIn()) { + setError(true); + return; + } + + const user = userData(); + console.log(user.id); + const userId = user?.id; + + if (!userId) { + setError(true); + return; + } + + const fetchUserData = async () => { + try { + // Perfil completo + const profileRes = await mecredApi.get(`api/user/${userId}`, { + headers: authHeaders(), + }); + setProfileData(profileRes.data); + + // Conquistas públicas + const achievementsRes = await mecredApi.get( + `public/userAchievements/${userId}/achievements` + ); + setAchievements(achievementsRes.data); + + // Itens públicos + const itemsRes = await mecredApi.get( + `public/user-items/${userId}/items?limit=1000` + ); + setItems(itemsRes.data); + + // Loja (badges desbloqueáveis por compra) + const storeRes = await mecredApi.get( + `public/user-items/${userId}/items?filter={"state":"active"}&item_type=badge&unlock_rule=purchase&limit=1000` + ); + setStore(storeRes.data); + + // Progressos (descomente se necessário) + // const progressesRes = await mecredApi.get(`/user_progresses/${userId}`); + // setProgresses(progressesRes.data); + + } catch (e) { + console.error(e); + setError(true); + } + }; + + fetchUserData(); + }, []); + + return ( + <Overlay type="twoColumns"> + {error ? ( + <ErrorComponent name="Usuário" /> + ) : ( + profileData && ( + <UserCard + profileData={profileData} + idLogin={profileData.id} + achievements={achievements} + progresses={progresses} + setItems={setItems} + items={items} + store={store} + tab={optTab} + /> + ) + )} + </Overlay> + ); }