From ca4f3676f98b405a8561ff2aa6ef5d472f38ee27 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Wed, 25 Mar 2026 15:39:01 -0400 Subject: [PATCH] Fix DOMPurify sanitize TypeError in Library components Vue 2's initMethods calls .bind(vm) on every method, which creates a new function that loses custom properties. The DOMPurify default export is a callable function with .sanitize() as a property, so binding it strips sanitize entirely, causing "TypeError: e.purify.sanitize is not a function" at runtime. Move purify out of methods/data and into setup() which returns values to the template without binding. Also fix an import ordering lint issue in DataTables.vue. Fixes #22239 --- client/src/components/Libraries/LibraryEditField.vue | 4 +++- .../components/Libraries/LibraryFolder/LibraryFolder.vue | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/src/components/Libraries/LibraryEditField.vue b/client/src/components/Libraries/LibraryEditField.vue index d0322fa4c6d..00f325f88aa 100644 --- a/client/src/components/Libraries/LibraryEditField.vue +++ b/client/src/components/Libraries/LibraryEditField.vue @@ -60,13 +60,15 @@ export default { type: Boolean, }, }, + setup() { + return { purify }; + }, data() { return { maxDescriptionLength: MAX_DESCRIPTION_LENGTH, }; }, methods: { - purify, updateValue(value) { this.$emit("update:changedValue", value); }, diff --git a/client/src/components/Libraries/LibraryFolder/LibraryFolder.vue b/client/src/components/Libraries/LibraryFolder/LibraryFolder.vue index e2b720fba64..02323cd9060 100644 --- a/client/src/components/Libraries/LibraryFolder/LibraryFolder.vue +++ b/client/src/components/Libraries/LibraryFolder/LibraryFolder.vue @@ -330,6 +330,9 @@ export default { required: false, }, }, + setup() { + return { purify }; + }, data() { return { ...initialFolderState(), @@ -349,8 +352,6 @@ export default { faTimes, faUnlock, faUsers, - // Utilities - purify, // Data currentPage: 1, sortBy: "name", @@ -396,7 +397,6 @@ export default { this.getFolder(this.folder_id, this.page); }, methods: { - purify, getFolder(folder_id, page) { this.currentFolderId = folder_id; this.currentPage = page;