feat: add onSelectUrl to BookmarkItem and intercept URL clicks

- Adds optional onSelectUrl callback
- Prevents default navigation to open in main content panel
- Keeps middle-click/target blank behavior if no handler
This commit is contained in:
Gigi
2025-10-02 23:33:05 +02:00
parent 9d5e8c194b
commit dab35820b7

View File

@@ -8,9 +8,10 @@ import { extractUrlsFromContent } from '../services/bookmarkHelpers'
interface BookmarkItemProps { interface BookmarkItemProps {
bookmark: IndividualBookmark bookmark: IndividualBookmark
index: number index: number
onSelectUrl?: (url: string) => void
} }
export const BookmarkItem: React.FC<BookmarkItemProps> = ({ bookmark, index }) => { export const BookmarkItem: React.FC<BookmarkItemProps> = ({ bookmark, index, onSelectUrl }) => {
const copy = async (text: string) => { const copy = async (text: string) => {
try { try {
await navigator.clipboard.writeText(text) await navigator.clipboard.writeText(text)
@@ -50,7 +51,14 @@ export const BookmarkItem: React.FC<BookmarkItemProps> = ({ bookmark, index }) =
<div className="bookmark-urls"> <div className="bookmark-urls">
<h4>URLs:</h4> <h4>URLs:</h4>
{extractedUrls.map((url, urlIndex) => ( {extractedUrls.map((url, urlIndex) => (
<a key={urlIndex} href={url} target="_blank" rel="noopener noreferrer" className="bookmark-url"> <a
key={urlIndex}
href={url}
target="_blank"
rel="noopener noreferrer"
className="bookmark-url"
onClick={(e) => { if (onSelectUrl) { e.preventDefault(); onSelectUrl(url) } }}
>
{url} {url}
</a> </a>
))} ))}