From 95e34fc310d05e82dbe029cf2ce121af51c68c05 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Wed, 12 Nov 2025 13:54:20 -0700 Subject: [PATCH 1/2] Set only the text of the badge, without removing wrappers Changelog: fixed --- .../javascripts/diffs/utils/merge_request.js | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/diffs/utils/merge_request.js b/app/assets/javascripts/diffs/utils/merge_request.js index a74c9fe7facd9f..6c2a1ef65a8ee1 100644 --- a/app/assets/javascripts/diffs/utils/merge_request.js +++ b/app/assets/javascripts/diffs/utils/merge_request.js @@ -16,14 +16,46 @@ function getVersionInfo({ endpoint } = {}) { }; } +function findText(el){ + let txt; + + el.childNodes.forEach((node) => { + if(node.nodeType === 3 && !txt){ + txt = node; + } + }); + + return txt; +} + export function updateChangesTabCount({ count, badge = document.querySelector('.js-diffs-tab .gl-badge'), } = {}) { - if (badge) { + const setters = { // The purpose of this function is to assign to this parameter - /* eslint-disable-next-line no-param-reassign */ - badge.textContent = count || ZERO_CHANGES_ALT_DISPLAY; + /* eslint-disable no-param-reassign */ + TEXT: (node, val) => { + node.nodeValue = val; + }, + ELEMENT: (node, val) => { + node.textContent = val; + }, + /* eslint-enable no-param-reassign */ + }; + + if (badge) { + const txt = findText(badge); + let setter; + + if(txt){ + setter = setters.TEXT; + } + else{ + setter = setters.ELEMENT; + } + + setter(count || ZERO_CHANGES_ALT_DISPLAY); } } -- GitLab From 7e3a4015cf297a877c1694f95cf269800b96fe95 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Wed, 12 Nov 2025 14:25:54 -0700 Subject: [PATCH 2/2] Recursively find any child text node --- .../javascripts/diffs/utils/merge_request.js | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/diffs/utils/merge_request.js b/app/assets/javascripts/diffs/utils/merge_request.js index 6c2a1ef65a8ee1..e4bbd4cc704a64 100644 --- a/app/assets/javascripts/diffs/utils/merge_request.js +++ b/app/assets/javascripts/diffs/utils/merge_request.js @@ -16,12 +16,16 @@ function getVersionInfo({ endpoint } = {}) { }; } -function findText(el){ +function findFirstText(el) { let txt; el.childNodes.forEach((node) => { - if(node.nodeType === 3 && !txt){ - txt = node; + if (node.nodeType === 3) { + if (!txt) { + txt = node; + } + } else { + txt = findFirstText(node); } }); @@ -45,17 +49,18 @@ export function updateChangesTabCount({ }; if (badge) { - const txt = findText(badge); + const txt = findFirstText(badge); + let el = badge; let setter; - if(txt){ + if (txt) { setter = setters.TEXT; - } - else{ + el = txt; + } else { setter = setters.ELEMENT; } - setter(count || ZERO_CHANGES_ALT_DISPLAY); + setter(el, count || ZERO_CHANGES_ALT_DISPLAY); } } -- GitLab