From 9032383070c3bff8a2f3b7d89f9c997dee79a597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 17 Jan 2023 09:53:24 -0500 Subject: [PATCH] fix: closes #11158 --- public/src/client/header/unread.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/public/src/client/header/unread.js b/public/src/client/header/unread.js index a34555ce94..0d67c22526 100644 --- a/public/src/client/header/unread.js +++ b/public/src/client/header/unread.js @@ -83,12 +83,28 @@ define('forum/header/unread', ['hooks'], function (hooks) { if (!utils.isNumber(count)) { return; } + count = Math.max(0, count); + const countText = count > 99 ? '99+' : count; + const navLink = $('a[href="' + config.relative_path + url + '"].navigation-link'); + // persona uses i with :after element navLink.find('i') .toggleClass('unread-count', count > 0) - .attr('data-content', count > 99 ? '99+' : count); - navLink.find('[component="navigation/count"]').toggleClass('hidden', count <= 0).text(count); - $('#mobile-menu [data-unread-url="' + url + '"]').attr('data-content', count > 99 ? '99+' : count); + .attr('data-content', countText); + + // harmony uses BS5 absolute positioned element + navLink.find('[component="navigation/count"]') + .toggleClass('hidden', count <= 0) + .text(count); + + // persona mobile menu uses data-content + $('#mobile-menu [data-unread-url="' + url + '"]') + .attr('data-content', countText); + + // harmony mobile unread badge, doesn't use data-content + $('[component="unread/count"][data-unread-url="' + url + '"]') + .toggleClass('hidden', count <= 0) + .text(countText); hooks.fire('action:unread.updateCount', { url, count }); }