import React from 'react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faLock, faBookmark, faUserLock, faCopy } from '@fortawesome/free-solid-svg-icons' import { IndividualBookmark } from '../types/bookmarks' import { formatDate, renderParsedContent } from '../utils/bookmarkUtils' import { extractUrlsFromContent } from '../services/bookmarkHelpers' interface BookmarkItemProps { bookmark: IndividualBookmark index: number } export const BookmarkItem: React.FC = ({ bookmark, index }) => { const copy = async (text: string) => { try { await navigator.clipboard.writeText(text) } catch (error) { console.warn('Failed to copy to clipboard:', error) } } const short = (v: string) => `${v.slice(0, 8)}...${v.slice(-8)}` // Extract URLs from bookmark content const extractedUrls = extractUrlsFromContent(bookmark.content) return (
{bookmark.isPrivate ? ( <> ) : ( )} {short(bookmark.id)} {formatDate(bookmark.created_at)}
{extractedUrls.length > 0 && (

URLs:

{extractedUrls.map((url, urlIndex) => ( {url} ))}
)} {bookmark.parsedContent ? (
{renderParsedContent(bookmark.parsedContent)}
) : bookmark.content && (

{bookmark.content}

)}
Kind: {bookmark.kind} Author: {short(bookmark.pubkey)}
) }