diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index c66e8143b..72459cd3e 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -156,7 +156,8 @@ const copyToClipboard = async (text) => { text = removeAllDetails(text); - const res = await _copyToClipboard(text); + + const res = await _copyToClipboard(text, $settings?.copyFormatted ?? false); if (res) { toast.success($i18n.t('Copying to clipboard was successful!')); } diff --git a/src/lib/components/chat/Settings/Interface.svelte b/src/lib/components/chat/Settings/Interface.svelte index 192b8d39d..c6298173a 100644 --- a/src/lib/components/chat/Settings/Interface.svelte +++ b/src/lib/components/chat/Settings/Interface.svelte @@ -43,6 +43,7 @@ let chatBubble = true; let chatDirection: 'LTR' | 'RTL' | 'auto' = 'auto'; let ctrlEnterToSend = false; + let copyFormatted = false; let collapseCodeBlocks = false; let expandDetails = false; @@ -220,6 +221,11 @@ } }; + const toggleCopyFormatted = async () => { + copyFormatted = !copyFormatted; + saveSettings({ copyFormatted }); + }; + const toggleChangeChatDirection = async () => { if (chatDirection === 'auto') { chatDirection = 'LTR'; @@ -275,6 +281,7 @@ richTextInput = $settings.richTextInput ?? true; promptAutocomplete = $settings.promptAutocomplete ?? false; largeTextAsFile = $settings.largeTextAsFile ?? false; + copyFormatted = $settings.copyFormatted ?? false; collapseCodeBlocks = $settings.collapseCodeBlocks ?? false; expandDetails = $settings.expandDetails ?? false; @@ -670,6 +677,28 @@ +