Skip to content

Commit 6437a3d

Browse files
committed
fix: clipboard helper HTML priority
1 parent de8485e commit 6437a3d

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

panel/src/helpers/clipboard.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,25 @@ describe.concurrent("clipboard.read()", () => {
5555
expect(read(event, true)).toBe("hello");
5656
});
5757

58+
it("should prefer text/html over text/plain", () => {
59+
const dataTransfer = new MockDataTransfer();
60+
dataTransfer.setData("text/html", "<b>hello</b>");
61+
dataTransfer.setData("text/plain", "hello");
62+
const event = new MockClipboardEvent("paste", {
63+
clipboardData: dataTransfer
64+
});
65+
expect(read(event)).toBe("<b>hello</b>");
66+
});
67+
68+
it("should fall back to text/plain when text/html is absent", () => {
69+
const dataTransfer = new MockDataTransfer();
70+
dataTransfer.setData("text/plain", "hello");
71+
const event = new MockClipboardEvent("paste", {
72+
clipboardData: dataTransfer
73+
});
74+
expect(read(event)).toBe("hello");
75+
});
76+
5877
it("should replace non-breaking spaces", () => {
5978
const dataTransfer = new MockDataTransfer();
6079
dataTransfer.setData("text/plain", "hello\u00a0world");

panel/src/helpers/clipboard.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export function read(
1919
return text;
2020
}
2121

22-
const html = text ?? e.clipboardData?.getData("text/plain") ?? null;
22+
const html = e.clipboardData?.getData("text/html") ?? text ?? null;
2323

2424
if (html) {
2525
return html.replace(/\u00a0/g, " ");

0 commit comments

Comments
 (0)