From 267ebe2ed9c7ee49b121f35d0d09d78911b97707 Mon Sep 17 00:00:00 2001 From: kieran Date: Fri, 13 Sep 2024 10:59:49 +0100 Subject: [PATCH] fix: copy text from note closes #663 --- packages/app/src/Components/Event/Note/Note.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/app/src/Components/Event/Note/Note.tsx b/packages/app/src/Components/Event/Note/Note.tsx index c7f5f371..671a00ea 100644 --- a/packages/app/src/Components/Event/Note/Note.tsx +++ b/packages/app/src/Components/Event/Note/Note.tsx @@ -16,7 +16,7 @@ import Username from "@/Components/User/Username"; import useModeration from "@/Hooks/useModeration"; import { chainKey } from "@/Utils/Thread/ChainKey"; -import { NoteProps } from "../EventComponent"; +import { NoteProps, NotePropsOptions } from "../EventComponent"; import HiddenNote from "../HiddenNote"; import Poll from "../Poll"; import NoteAppHandler from "./NoteAppHandler"; @@ -108,10 +108,10 @@ export function Note(props: NoteProps) { return !ignoreModeration && isEventMuted(ev) ? {noteElement} : noteElement; } -function useGoToEvent(props, options) { +function useGoToEvent(props: NoteProps, options: NotePropsOptions) { const navigate = useNavigate(); return useCallback( - (e, eTarget) => { + (e: React.MouseEvent, eTarget: TaggedNostrEvent) => { if (options?.canClick === false) { return; } @@ -130,11 +130,20 @@ function useGoToEvent(props, options) { } e.stopPropagation(); + + // prevent navigation if selecting text + const cellText = document.getSelection(); + if (cellText?.type === "Range") { + return; + } + + // custom onclick handler if (props.onClick) { props.onClick(eTarget); return; } + // link to event const link = NostrLink.fromEvent(eTarget); if (e.metaKey) { window.open(`/${link.encode(CONFIG.eventLinkPrefix)}`, "_blank");