import { useEffect, useState } from "react"; import { useParams, useNavigate } from "react-router-dom"; interface User { id: number; username: string; fullName: string; followerCount: number; followingCount: number; userType: string; contributions?: { role: string; title: string; musicalEntityId: number; entityType: string; }[]; likedEntities?: { entityId: number; entityTitle: string; entityGenre: string; entityType: string; }[]; } const UserDetail = () => { const { userId } = useParams(); const navigate = useNavigate(); const [user, setUser] = useState(null); useEffect(() => { const fetchUser = async () => { console.log(userId); const response = await fetch(`http://localhost:8080/users/${userId}`); const data = await response.json(); setUser(data); }; fetchUser(); }, [userId]); if (!user) return
Loading...
; return (
{/* */}

{user.fullName}

Username: @{user.username}

Followers: {user.followerCount}

Following: {user.followingCount}

Type: {user.userType}

{user.userType === "Artist" && user.contributions && (

Discography

{user.contributions.map((item, index) => (

{item.title}

{item.entityType}

{item.role} {item.musicalEntityId}
))}
)} {user.userType === "Listener" && user.likedEntities && (

Liked Songs & Albums

{user.likedEntities.map((like) => (
{like.entityTitle} {like.entityType} {like.entityGenre}
))}
)}
); }; export default UserDetail;