Skip to content

Commit 3b249b9

Browse files
committed
feat(webview): fixed the copy button behavior
1 parent 0de1ab6 commit 3b249b9

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

resources/webview.html

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@
628628
return false;
629629
}
630630

631-
function addBubble(content, role, meta, shouldConnectToPrev = false) {
631+
function addBubble(content, role, meta, shouldConnectToPrev = false, copySource = "") {
632632

633633
const bubble = document.createElement("div");
634634
bubble.className = "bubble " + role;
@@ -699,8 +699,10 @@
699699
`;
700700
copyBtn.addEventListener("click", (e) => {
701701
e.stopPropagation();
702-
// 提取纯文本内容
703-
const textContent = contentDiv.textContent || contentDiv.innerText || "";
702+
const textContent =
703+
typeof copySource === "string" && copySource.length > 0
704+
? copySource
705+
: contentDiv.textContent || contentDiv.innerText || "";
704706
vscode.postMessage({
705707
type: "copyText",
706708
text: textContent
@@ -1804,7 +1806,7 @@
18041806
} else if (msg.role === "user") {
18051807
addBubble(msg.content, "user", msg.meta, false);
18061808
} else if (msg.role === "assistant") {
1807-
addBubble(msg.html || msg.content, "assistant", msg.meta, shouldConnect);
1809+
addBubble(msg.html || msg.content, "assistant", msg.meta, shouldConnect, msg.content || "");
18081810
} else if (msg.role === "tool") {
18091811
addBubble(msg.content, "tool", msg.meta, shouldConnect);
18101812
}
@@ -1959,7 +1961,7 @@
19591961
} else if (message.type === "assistant") {
19601962
// 接收助手回复
19611963
const shouldConnect = lastMessageRole !== null && lastMessageRole !== "user";
1962-
addBubble(message.html || "", "assistant", message.meta, shouldConnect);
1964+
addBubble(message.html || message.content || "", "assistant", message.meta, shouldConnect, message.content || "");
19631965
} else if (message.type === "loading") {
19641966
// 加载状态
19651967
const newStatus = message.value ? "processing" : currentSessionStatus;

0 commit comments

Comments
 (0)