fixed: Friends list not shown in settings page

This commit is contained in:
Moon Patel
2023-07-23 19:04:49 +05:30
parent 156d4e6f2c
commit f86846004f
2 changed files with 12 additions and 33 deletions
+10 -32
View File
@@ -1,37 +1,10 @@
import { Avatar, Flex, Image, Loader, NavLink, Text, Title } from '@mantine/core';
import { Avatar, Flex, Loader, NavLink, Text, Title } from '@mantine/core';
import { Link } from 'react-router-dom';
import React, { useEffect, useState } from 'react';
import { getAuthToken, getUserData } from '../../utils/auth'
import { UserDataContext } from '../context/user-data-context';
import React, { useContext } from 'react';
const FriendsList = () => {
const [friends, setFriends] = useState(null);
const user = getUserData();
let { id:userid } = user;
useEffect(() => {
let response = null;
const fetchData = async () => {
let url = `${import.meta.env.VITE_BACKEND_HOST}/api/user/${userid}/friends`;
try {
response = await fetch(url, {
headers: {
'Authorization': `Bearer ${getAuthToken()}`
}
});
const data = await response.json();
if (data.success) {
setFriends(data.friends);
} else {
throw data.error;
}
} catch (error) {
console.error(error)
}
}
fetchData();
}, []);
const { friends } = useContext(UserDataContext)
if (!friends) {
return (
@@ -43,7 +16,12 @@ const FriendsList = () => {
<Flex sx={{ flexGrow: '1' }} height="100%" justify="start" my="md" align="start" direction="column">
<Title px="sm" pt="md" order={3}>Friends</Title>
{
friends.map((friend, index) => <NavLink key={index} component={Link} to={`/play/friend/${friend.username}`} p='5px' icon={<Avatar size='sm' color='blue' children={friend.username[0].toUpperCase()} />} label={<Text fw={700}>{friend.username}</Text>} />)
friends.length === 0 ?
<Text>
No friends
</Text>
:
friends.map((friend, index) => <NavLink key={index} component={Link} to={`/play/friend/${friend.username}`} p='5px' icon={<Avatar size='sm' color='blue' children={friend.username[0].toUpperCase()} />} label={<Text fw={700}>{friend.username}</Text>} />)
}
</Flex>
)
+2 -1
View File
@@ -8,6 +8,7 @@ const UserDataContextProvider = ({ children }) => {
const [isLoggedIn, setIsLoggedIn] = useState(JSON.parse(localStorage.getItem('loggedIn')));
const [user, setUser] = useState(null);
const [errorMessage, setErrorMessage] = useState("");
console.log(user)
async function fetchUserDetails() {
try {
@@ -35,7 +36,7 @@ const UserDataContextProvider = ({ children }) => {
}, []);
return (
<UserDataContext.Provider value={{ user, errorMessage, isLoggedIn,setIsLoggedIn }}>
<UserDataContext.Provider value={{ user, friends: user?.friends , games: user?.games, errorMessage, isLoggedIn, setIsLoggedIn }}>
{children}
</UserDataContext.Provider>
)