diff --git a/components/waves/ChatItemHrefButtons.tsx b/components/waves/ChatItemHrefButtons.tsx index 926f349ef0..7251a2e04d 100644 --- a/components/waves/ChatItemHrefButtons.tsx +++ b/components/waves/ChatItemHrefButtons.tsx @@ -1,7 +1,22 @@ "use client"; import Link from "next/link"; -import { useState } from "react"; +import { + useState, + type MouseEvent, + type PointerEvent, + type TouchEvent, +} from "react"; + +type StopEvent = + | MouseEvent + | PointerEvent + | TouchEvent; + +const stopPropagation = (event: StopEvent) => { + event.stopPropagation(); + event.nativeEvent.stopImmediatePropagation?.(); +}; export default function ChatItemHrefButtons({ href, @@ -14,7 +29,8 @@ export default function ChatItemHrefButtons({ }) { const [copied, setCopied] = useState(false); - const copyToClipboard = () => { + const copyToClipboard = (event: MouseEvent) => { + stopPropagation(event); navigator.clipboard.writeText(href).then(() => { setCopied(true); setTimeout(() => setCopied(false), 500); @@ -24,8 +40,12 @@ export default function ChatItemHrefButtons({ return (