import React, { useCallback, useEffect, useState } from 'react';
import { useParams } from 'react-router-dom';
import * as BS from 'react-bootstrap';
import Loading from '../Components/Loading';
import API_URL from '../Constants/constants';
import ProfilePage from '../Components/Public/ProfilePage';
const MemberProfile = () => {
const { memberID } = useParams();
const [isLoading, setIsLoading ] = useState(false);
const [isError, setIsError ] = useState(false);
const [isForbidden, setIsForbidden ] = useState(false);
const [ member, setMember ] = useState({});
const fetchMember = useCallback( () => {
setIsLoading(true);
setIsError(false);
fetch(`${API_URL}m/${memberID}`,{
method: 'GET',
}).then ( res => {
if (res.status === 403) {
throw new Error('Access denied!');
}
return res.json()
}
).then (data => {
setMember(data)
setIsLoading(false);
})
.catch (error => {
if (error.message === 'Access denied!') {
setIsForbidden(true);
} else {
console.log(error);
setIsError(true);
}
setIsLoading(false);
})
}, [memberID])
useEffect(() => {
fetchMember();
}, [fetchMember])
return (
isLoading ? : isError ?
Error fetching member. : isForbidden ? This member is private. :
);
}
export default MemberProfile;