import { Link, useNavigate } from 'react-router-dom'; import { nip19 } from 'nostr-tools'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Badge } from '@/components/ui/badge'; import { Skeleton } from '@/components/ui/skeleton'; import { Button } from '@/components/ui/button'; import { useWhosSkatingAtSpot, SKATING_STATUSES } from '@/hooks/useUserStatus'; import { useAuthor } from '@/hooks/useAuthor'; import { genUserName } from '@/lib/genUserName'; import { Users, MessageCircle } from 'lucide-react'; import { cn } from '@/lib/utils'; interface WhosSkatingProps { spotPubkey: string; spotIdentifier: string; className?: string; } function SkaterCard({ pubkey, status, emoji }: { pubkey: string; status: string; emoji?: string }) { const navigate = useNavigate(); const { data: authorData, isLoading } = useAuthor(pubkey); const metadata = authorData?.metadata; const displayName = metadata?.name ?? genUserName(pubkey); const npub = nip19.npubEncode(pubkey); if (isLoading) { return (
{displayName}
{emoji} {status}
+{skatersAtSpot.length - 5} more
)} > ) : null}