From 31139ecec009d09c5fd4729ca733593a8fc159b7 Mon Sep 17 00:00:00 2001 From: nightcityblade Date: Sat, 8 Aug 2026 11:10:26 +0800 Subject: [PATCH] Fix closeable plain text handling --- .../vue-components/src/__tests__/Closeable.spec.js | 12 ++++++++++++ packages/vue-components/src/directives/Closeable.js | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 packages/vue-components/src/__tests__/Closeable.spec.js diff --git a/packages/vue-components/src/__tests__/Closeable.spec.js b/packages/vue-components/src/__tests__/Closeable.spec.js new file mode 100644 index 0000000000..38a398f07d --- /dev/null +++ b/packages/vue-components/src/__tests__/Closeable.spec.js @@ -0,0 +1,12 @@ +import closeable from '../directives/Closeable'; + +describe('Closeable directive', () => { + test('preserves plain text content', () => { + const element = document.createElement('div'); + element.textContent = 'Plain text'; + + closeable.mounted(element); + + expect(element.querySelector('.content').textContent).toBe('Plain text'); + }); +}); diff --git a/packages/vue-components/src/directives/Closeable.js b/packages/vue-components/src/directives/Closeable.js index 0f023b9efa..489848c275 100644 --- a/packages/vue-components/src/directives/Closeable.js +++ b/packages/vue-components/src/directives/Closeable.js @@ -51,7 +51,7 @@ module.exports = { const content = document.createElement('div'); content.classList.add('content'); - Array.from(el.children).forEach(child => content.append(child)); + Array.from(el.childNodes).forEach(child => content.append(child)); el.replaceChildren(); el.append(content); el.classList.add('closeable-wrapper');