import { useEffect, useState } from "react"; import { useParams, useNavigate } from "react-router-dom"; import ArtistView from "./ArtistView"; import ListenerView from "./ListenerView"; interface MusicalEntityDTO { id: number; title: string; genre: string; type: string; } interface ArtistContributionDTO { musicalEntityId: number; title: string; role: string; entityType: string; } interface Playlist { id: number; name: string; cover: string; creatorName: string; } interface User { id: number; username: string; fullName: string; userType: string; followers: number; following: number; musicalEntities?: { contributions: ArtistContributionDTO[]; }; likes?: { likedEntities: MusicalEntityDTO[]; }; createdPlaylists?: Playlist[]; } 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(); console.log("Fetched user data:", data); setUser(data); }; fetchUser(); }, [userId]); if (!user) return
Loading...
; return (
{/* Profile Header */}
{/* Profile Photo */}
{user.fullName.charAt(0).toUpperCase()}
{/* User Info */}

{user.fullName}

{user.userType} {/* Followers/Following Stats */}
{user.followers} Followers
{user.following} Following
{user.userType === "ARTIST" && user.musicalEntities?.contributions && ( )} {user.userType === "LISTENER" && user.likes?.likedEntities && ( )}
); }; export default UserDetail;