Browse Source

enh: only copy text message content

Timothy Jaeryang Baek 2 months ago
parent
commit
c3497da5dd
2 changed files with 9 additions and 1 deletions
  1. 4 1
      src/lib/components/chat/Messages/ResponseMessage.svelte
  2. 5 0
      src/lib/utils/index.ts

+ 4 - 1
src/lib/components/chat/Messages/ResponseMessage.svelte

@@ -24,7 +24,9 @@
 		getMessageContentParts,
 		sanitizeResponseContent,
 		createMessagesList,
-		formatDate
+		formatDate,
+		removeDetails,
+		removeAllDetails
 	} from '$lib/utils';
 	import { WEBUI_BASE_URL } from '$lib/constants';
 
@@ -152,6 +154,7 @@
 	let showRateComment = false;
 
 	const copyToClipboard = async (text) => {
+		text = removeAllDetails(text);
 		const res = await _copyToClipboard(text);
 		if (res) {
 			toast.success($i18n.t('Copying to clipboard was successful!'));

+ 5 - 0
src/lib/utils/index.ts

@@ -683,6 +683,11 @@ export const removeDetails = (content, types) => {
 	return content;
 };
 
+export const removeAllDetails = (content) => {
+	content = content.replace(/<details[^>]*>.*?<\/details>/gis, '');
+	return content;
+};
+
 export const processDetails = (content) => {
 	content = removeDetails(content, ['reasoning', 'code_interpreter']);