import React, { useEffect, useState } from "react"; import { useParams } from "react-router-dom"; // <-- import import { DefaultService } from "../../api/services/DefaultService"; import type { User } from "../../api/models/User"; import styles from "./UserPage.module.css"; const UserPage: React.FC = () => { const { id } = useParams<{ id: string }>(); // <-- get user id from URL const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { if (!id) return; const getUserInfo = async () => { try { const userInfo = await DefaultService.getUsersId(id, "all"); // <-- use dynamic id setUser(userInfo); } catch (err) { console.error(err); setError("Failed to fetch user info."); } finally { setLoading(false); } }; getUserInfo(); }, [id]); if (loading) return
Loading...
; if (error) return
{error}
; if (!user) return
User not found.
; return (
{user.image?.image_path ? ( User Avatar ) : (
{user.disp_name?.[0] || "U"}
)}

{user.disp_name || user.nickname}

@{user.nickname}

{/*

Joined: {new Date(user.creation_date).toLocaleDateString()}

*/}
{user.user_desc &&

{user.user_desc}

}
); }; export default UserPage;