diff --git a/src/hooks/useHtmlPaste/index.ts b/src/hooks/useHtmlPaste/index.ts index 1a7e62f3141e..1a5606ef48ad 100644 --- a/src/hooks/useHtmlPaste/index.ts +++ b/src/hooks/useHtmlPaste/index.ts @@ -1,4 +1,5 @@ import {useCallback, useEffect} from 'react'; +import {isMobile} from '@libs/Browser'; import Parser from '@libs/Parser'; import CONST from '@src/CONST'; import type UseHtmlPaste from './types'; @@ -89,9 +90,14 @@ const useHtmlPaste: UseHtmlPaste = (textInputRef, preHtmlPasteCallback, isActive */ const handlePastePlainText = useCallback( (event: ClipboardEvent) => { - const plainText = event.clipboardData?.getData('text/plain'); - if (plainText) { - paste(plainText); + const markdownText = event.clipboardData?.getData('text/plain'); + // Updated paste logic to address issue #53718 + // When copying from a chat conversation, the clipboard contains markdown-formatted text. + // On desktop web, users have the option to paste as plain text, but this feature is unavailable on mobile web. + // A conditional check is added to determine whether to retain markdown or convert it to plain text based on the platform. + if (markdownText) { + const parsedText = isMobile() ? markdownText : Parser.htmlToText(Parser.replace(markdownText)); + paste(parsedText); } }, [paste], diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index bf5e1b253f3f..694d8eea5ab5 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -119,10 +119,8 @@ function setClipboardMessage(content: string | undefined) { if (!Clipboard.canSetHtml()) { Clipboard.setString(Parser.htmlToMarkdown(content)); } else { - const anchorRegex = CONST.REGEX_LINK_IN_ANCHOR; - const isAnchorTag = anchorRegex.test(content); - const plainText = isAnchorTag ? Parser.htmlToMarkdown(content) : Parser.htmlToText(content); - Clipboard.setHtml(content, plainText); + const markdownText = Parser.htmlToMarkdown(content); + Clipboard.setHtml(content, markdownText); } }