import { useEffect, useState } from "react"; import { toast } from "react-hot-toast"; import { useParams } from "react-router-dom"; import MemoList from "@/components/MemoList"; import MobileHeader from "@/components/MobileHeader"; import UserAvatar from "@/components/UserAvatar"; import useLoading from "@/hooks/useLoading"; import { useUserV1Store } from "@/store/v1"; import { User } from "@/types/proto/api/v2/user_service"; import { useTranslate } from "@/utils/i18n"; const UserProfile = () => { const t = useTranslate(); const params = useParams(); const userV1Store = useUserV1Store(); const loadingState = useLoading(); const [user, setUser] = useState(); useEffect(() => { const username = params.username; if (!username) { throw new Error("username is required"); } userV1Store .getOrFetchUserByUsername(username) .then((user) => { setUser(user); loadingState.setFinish(); }) .catch((error) => { console.error(error); toast.error(t("message.user-not-found")); }); }, [params.username]); return (
{!loadingState.isLoading && (user ? ( <>

{user?.nickname}

) : (

Not found

))}
); }; export default UserProfile;