Skip to content
Snippets Groups Projects
Commit 1df65047 authored by Richard Fernando Heise Ferreira's avatar Richard Fernando Heise Ferreira
Browse files

Perfil funcionando (ou quase)

parent 62a79b4c
No related branches found
No related tags found
No related merge requests found
Pipeline #42710 passed
......@@ -103,7 +103,7 @@ export default function AccountMenu() {
return (
<>
{logged ? (
{loggedIn ? (
<Box className="mr-5 flex align-center">
<IconButton
onClick={handleClick}
......
......@@ -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)
......
......@@ -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']);
......
......@@ -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}`, {
......
"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,114 +7,79 @@ import mecredApi from "@/axiosConfig";
import { authHeaders, isLoggedIn, userData } from "@/app/handlers/loginHandler";
import ErrorComponent from "@/app/components/ErrorComponent";
export default function Perfil({ params }) {
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 [idLogin, setIdLogin] = useState(0)
const [error, setError] = useState(false);
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))
if (!isLoggedIn()) {
setError(true);
return;
}
fetchAchievements(params.id);
// const fetchProgresses = async (id) => {
// await mecredApi
// .get(`/user_progresses/${id}`)
// .then(({ data }) => {
// setProgresses(data);
// })
// .catch(() => setError(true))
// }
// fetchProgresses(params.id)
const user = userData();
console.log(user.id);
const userId = user?.id;
const fetchItems = async (id) => {
await mecredApi
.get(`public/user-items/${id}/items?limit=1000`)
.then(({ data }) => {
setItems(data);
})
.catch(() => setError(true))
if (!userId) {
setError(true);
return;
}
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 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);
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))
}
// Itens públicos
const itemsRes = await mecredApi.get(
`public/user-items/${userId}/items?limit=1000`
);
setItems(itemsRes.data);
fetchStore(params.id)
// 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);
} else {
const fetchUser = async (id) => {
await mecredApi
.get(`api/user/${id}`)
.then(({ data }) => {
setProfileData(data);
})
.catch(() => setError(true))
}
// Progressos (descomente se necessário)
// const progressesRes = await mecredApi.get(`/user_progresses/${userId}`);
// setProgresses(progressesRes.data);
fetchUser(params.id)
} catch (e) {
console.error(e);
setError(true);
}
};
}, [params])
fetchUserData();
}, []);
return (
<>
<Overlay type="twoColumns">
{error ? <ErrorComponent name="Usuário" /> :
(profileData &&
{error ? (
<ErrorComponent name="Usuário" />
) : (
profileData && (
<UserCard
profileData={profileData}
idLogin={idLogin}
idLogin={profileData.id}
achievements={achievements}
progresses={progresses}
setItems={setItems}
......@@ -122,9 +87,9 @@ export default function Perfil({ params }) {
store={store}
tab={optTab}
/>
)
)}
</Overlay>
</>
);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment