diff --git a/client/components/creator-network/CreatorCard.tsx b/client/components/creator-network/CreatorCard.tsx new file mode 100644 index 00000000..1871d1ee --- /dev/null +++ b/client/components/creator-network/CreatorCard.tsx @@ -0,0 +1,91 @@ +import { Card, CardContent } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar"; +import { ArmBadge } from "./ArmBadge"; +import { MapPin, ExternalLink } from "lucide-react"; +import { useNavigate } from "react-router-dom"; +import type { Creator } from "@/api/creators"; + +export interface CreatorCardProps { + creator: Creator; +} + +export function CreatorCard({ creator }: CreatorCardProps) { + const navigate = useNavigate(); + + return ( + + +
+ + + {creator.username.charAt(0).toUpperCase()} + + {creator.devconnect_linked && ( +
+ On DevConnect +
+ )} +
+ +
+

+ @{creator.username} +

+

+ {creator.bio || "No bio provided"} +

+
+ +
+ {creator.primary_arm && ( + + )} + {creator.arm_affiliations && creator.arm_affiliations.length > 0 && ( + <> + {creator.arm_affiliations.slice(0, 2).map((arm) => ( + + ))} + {creator.arm_affiliations.length > 2 && ( +
+ +{creator.arm_affiliations.length - 2} more +
+ )} + + )} +
+ + {creator.skills && creator.skills.length > 0 && ( +
+

Skills

+
+ {creator.skills.slice(0, 3).map((skill) => ( + + {skill} + + ))} + {creator.skills.length > 3 && ( + + +{creator.skills.length - 3} + + )} +
+
+ )} + +
+ +
+
+
+ ); +}