From a67a84ebd5c9bfe2be00eb43502c269e68d016e5 Mon Sep 17 00:00:00 2001 From: highperfocused Date: Sat, 22 Nov 2025 01:16:14 +0100 Subject: [PATCH] Add navigation to user profiles in PictureCard component --- src/components/feed/PictureCard.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/feed/PictureCard.tsx b/src/components/feed/PictureCard.tsx index fb50d0f..6710e57 100644 --- a/src/components/feed/PictureCard.tsx +++ b/src/components/feed/PictureCard.tsx @@ -8,6 +8,8 @@ import { Badge } from '@/components/ui/badge'; import { useState } from 'react'; import { ChevronLeft, ChevronRight } from 'lucide-react'; import { Button } from '@/components/ui/button'; +import { useNavigate } from 'react-router-dom'; +import { nip19 } from 'nostr-tools'; interface PictureCardProps { event: NostrEvent; @@ -56,6 +58,7 @@ export function PictureCard({ event }: PictureCardProps) { const author = useAuthor(event.pubkey); const metadata: NostrMetadata | undefined = author.data?.metadata; const [currentImageIndex, setCurrentImageIndex] = useState(0); + const navigate = useNavigate(); const displayName = metadata?.display_name || metadata?.name || genUserName(event.pubkey); const profileImage = metadata?.picture; @@ -71,6 +74,11 @@ export function PictureCard({ event }: PictureCardProps) { setCurrentImageIndex((prev) => (prev - 1 + images.length) % images.length); }; + const goToProfile = () => { + const npub = nip19.npubEncode(event.pubkey); + navigate(`/${npub}`); + }; + if (images.length === 0) { return null; } @@ -79,12 +87,17 @@ export function PictureCard({ event }: PictureCardProps) {
- + {displayName[0]?.toUpperCase()}
- {displayName} + + {displayName} + {new Date(event.created_at * 1000).toLocaleDateString()}