"use client"; import { Calendar, User as UserIcon } from "lucide-react"; import * as React from "react"; import { ContentList } from "@/components/content-list"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Spinner } from "@/components/ui/spinner"; import { ContentService } from "@/services/content.service"; import { UserService } from "@/services/user.service"; import type { User } from "@/types/user"; export default function PublicProfilePage({ params, }: { params: Promise<{ username: string }>; }) { const { username } = React.use(params); const [user, setUser] = React.useState(null); const [loading, setLoading] = React.useState(true); React.useEffect(() => { UserService.getProfile(username) .then(setUser) .catch(console.error) .finally(() => setLoading(false)); }, [username]); const fetchUserMemes = React.useCallback( (params: { limit: number; offset: number }) => ContentService.getExplore({ ...params, author: username }), [username], ); if (loading) { return (
); } if (!user) { return (

Utilisateur non trouvé

Le membre @{username} n'existe pas ou a quitté le troupeau.

); } return (
{user.username.slice(0, 2).toUpperCase()}

{user.displayName || user.username}

@{user.username}

{user.bio && (

{user.bio}

)}
Membre depuis{" "} {new Date(user.createdAt).toLocaleDateString("fr-FR", { month: "long", year: "numeric", })}

Ses mèmes

); }