"use client"; import { useEffect } from "react"; import { useQuery } from "@tanstack/react-query"; import { notFound } from "next/navigation"; import { Separator } from "@/components/ui/separator"; import { getUserByUserId, UserProfileDetails } from "@/lib/profile"; import { UserProfileHeader } from "@/components/roblox/UserProfileHeader"; import { Skeleton } from "@/components/ui/skeleton"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { ShieldBanIcon } from "lucide-react"; import Link from "next/link"; import { useFriendsHome } from "@/hooks/roblox/useFriends"; import { FriendCarousel } from "@/components/roblox/FriendCarousel"; interface UserProfileContentProps { userId: string; } function ProfileMoreDetails({ profile }: { profile: UserProfileDetails }) { const theirFriends = useFriendsHome(profile.id.toString()); return ( <> {!theirFriends && } {/* //@ts-expect-error */} Friends} className="overflow-visible -ml-4" friends={theirFriends || []} /> ); } export default function UserProfileContent({ userId }: UserProfileContentProps) { const { data: profile, isLoading } = useQuery({ queryKey: ["user-profile", userId], queryFn: () => getUserByUserId(userId), enabled: !!userId }); // Set dynamic document title useEffect(() => { if (profile?.displayName) { document.title = `${profile.displayName}'s profile | Roblox`; } }, [profile]); if (isLoading) return
Loading user profile...
; if (!profile) notFound(); return (
{profile.description}
{profile.isBanned && ( <>
This user is banned Their Roblox account appears to be terminated from the platform. You can see their inventory and RAP history on{" "} Rolimons
)} {!profile.isBanned && }
); }