import { Github, Globe, Linkedin, Twitter } from "lucide-react"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; interface SocialLinks { twitter?: string; linkedin?: string; github?: string; website?: string; } interface Stats { followers: number; following: number; projects: number; } interface User { name: string; avatar?: string; role?: string; company?: string; bio?: string; socialLinks?: SocialLinks; stats?: Stats; } interface UserProfile2Props { user?: User; className?: string; } const formatNumber = (num: number): string => { if (num >= 1000000) { const value = num / 1000000; const formatted = parseFloat(value.toFixed(1).replace(/\.0$/, "")).toLocaleString( "fa-IR", { useGrouping: false }, ); return `${formatted} میلیون`; } if (num >= 1000) { const value = num / 1000; const formatted = parseFloat(value.toFixed(1).replace(/\.0$/, "")).toLocaleString( "fa-IR", { useGrouping: false }, ); return `${formatted} هزار`; } return num.toLocaleString("fa-IR"); }; const UserProfile2 = ({ user = { name: "امیر رضایی", avatar: "/block-media/shadcnblocks/block/avatar/avatar3.webp", role: "توسعه‌دهنده فول‌استک", company: "ورسل", bio: "ساخت ابزار برای توسعه‌دهندگان. علاقه‌مند به متن‌باز. مدافع TypeScript. وب را سریع‌تر می‌کنیم، یک کامیت در هر بار.", socialLinks: { twitter: "https://twitter.com", linkedin: "https://linkedin.com", github: "https://github.com", website: "https://example.com", }, stats: { followers: 12400, following: 892, projects: 47, }, }, className, }: UserProfile2Props) => { const initials = user.name .split(" ") .map((n) => n[0]) .join(""); const socialIcons = [ { key: "twitter", icon: Twitter, href: user.socialLinks?.twitter }, { key: "linkedin", icon: Linkedin, href: user.socialLinks?.linkedin }, { key: "github", icon: Github, href: user.socialLinks?.github }, { key: "website", icon: Globe, href: user.socialLinks?.website }, ].filter((item) => item.href); return (
{initials}

{user.name}

{user.role} {user.company && ( <> {" "} در {user.company} )}

{socialIcons.length > 0 && (
{socialIcons.map(({ key, icon: Icon, href }) => ( ))}
)}
{user.bio && (

{user.bio}

)} {user.stats && (

{formatNumber(user.stats.followers)}

دنبال‌کننده

{formatNumber(user.stats.following)}

دنبال‌شده

{formatNumber(user.stats.projects)}

پروژه

)}
); }; export { UserProfile2 };