From 77c4ccf8fbce63724abe6ec3c80236bba73c9ae5 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 10 Feb 2025 16:41:18 +0000 Subject: [PATCH] Handle undefined username when generating user icon Fixes #5036 --- .../@node-red/editor-client/src/js/multiplayer.js | 7 +++---- .../node_modules/@node-red/editor-client/src/js/user.js | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/multiplayer.js b/packages/node_modules/@node-red/editor-client/src/js/multiplayer.js index b37d90fcb..fed5f518a 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/multiplayer.js +++ b/packages/node_modules/@node-red/editor-client/src/js/multiplayer.js @@ -398,14 +398,13 @@ RED.multiplayer = (function () { anonIconBody.setAttribute("d",`M ${radius/2} ${radius/2 + 5} h -2.5 c -2 1 -2 -5 0.5 -4.5 c 2 1 2 1 4 0 c 2.5 -0.5 2.5 5.5 0 4.5 z`); group.appendChild(anonIconBody) } else { - const labelText = user.username ? user.username.substring(0,2) : user const label = document.createElementNS("http://www.w3.org/2000/svg","text"); - if (user.username) { + if (user.username || user.email) { label.setAttribute("class","red-ui-multiplayer-annotation-label"); - label.textContent = user.username.substring(0,2) + label.textContent = (user.username || user.email).substring(0,2) } else { label.setAttribute("class","red-ui-multiplayer-annotation-label red-ui-multiplayer-user-count") - label.textContent = user + label.textContent = 'nr' } label.setAttribute("text-anchor", "middle") label.setAttribute("x",radius/2); diff --git a/packages/node_modules/@node-red/editor-client/src/js/user.js b/packages/node_modules/@node-red/editor-client/src/js/user.js index e2c3cb577..e626f4ec0 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/user.js +++ b/packages/node_modules/@node-red/editor-client/src/js/user.js @@ -351,10 +351,10 @@ RED.user = (function() { userIcon.css({ backgroundImage: "url("+user.image+")", }) - } else if (user.anonymous) { + } else if (user.anonymous || (!user.username && !user.email)) { $('').appendTo(userIcon); } else { - $('').text(user.username.substring(0,2)).appendTo(userIcon); + $('').text((user.username || user.email).substring(0,2)).appendTo(userIcon); } if (user.profileColor !== undefined) { userIcon.addClass('red-ui-user-profile-color-' + user.profileColor)