diff --git a/ts/components/conversation/message/message-content/MessageContextMenu.tsx b/ts/components/conversation/message/message-content/MessageContextMenu.tsx
index 015a8c1c6..2d0439cce 100644
--- a/ts/components/conversation/message/message-content/MessageContextMenu.tsx
+++ b/ts/components/conversation/message/message-content/MessageContextMenu.tsx
@@ -225,6 +225,20 @@ export const MessageContextMenu = (props: Props) => {
MessageInteraction.copyBodyToClipboard(text);
}, [text]);
+ const copyLinkFromMessage = useCallback(() => {
+ const linkMatch = text?.match(/https?:\/\/[^\s]+/);
+ const firstLink = linkMatch?.[0];
+
+ if (firstLink) {
+ navigator.clipboard.writeText(firstLink).then(() => {
+ window.log.info('Link copied to clipboard');
+ });
+ } else {
+ window.log.warn('No link found in message');
+ }
+}, [text]);
+
+
const onSelect = useCallback(() => {
dispatch(toggleSelectedMessageId(messageId));
}, [dispatch, messageId]);
@@ -331,6 +345,7 @@ export const MessageContextMenu = (props: Props) => {
) : null}
{window.i18n('copy')}
+ {window.i18n('copyMessageLink') ?? 'Copy link in message'}
{
void showMessageInfoOverlay({ messageId, dispatch });