From 3a083f99f6ff41aabdfa0a5c950edaaf560a620a Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Mon, 3 Feb 2025 00:51:49 -0500 Subject: [PATCH] sort MAM board admin list by name with NULL first --- assets/js/ARBoard.js | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/assets/js/ARBoard.js b/assets/js/ARBoard.js index e998247..29bf518 100644 --- a/assets/js/ARBoard.js +++ b/assets/js/ARBoard.js @@ -248,6 +248,25 @@ const displayExistingMinterAdmins = async () => { try { // 1) Fetch addresses const admins = await fetchMinterGroupAdmins() + // Get names for each admin first + for (const admin of admins) { + try { + admin.name = await getNameFromAddress(admin.member) + } catch (err) { + console.warn(`Error fetching name for ${admin.member}:`, err) + admin.name = null + } + } + // Sort admin list by name with NULL ACCOUNT at the top + admins.sort((a, b) => { + if (a.member === nullAddress && b.member !== nullAddress) { + return -1; + } + if (b.member === nullAddress && a.member !== nullAddress) { + return 1; + } + return (a.name || '').localeCompare(b.name || ''); + }) minterAdminAddresses = admins.map(m => m.member) // Compute total admin count and signatures needed (40%, rounded up) const totalAdmins = admins.length; @@ -271,16 +290,8 @@ const displayExistingMinterAdmins = async () => { ` continue - } - // Attempt to get name - let adminName - try { - adminName = await getNameFromAddress(adminAddr.member) - } catch (err) { - console.warn(`Error fetching name for ${adminAddr.member}:`, err) - adminName = null } - const displayName = adminName && adminName !== adminAddr.member ? adminName : "(No Name)" + const displayName = adminAddr.name && adminAddr.name !== adminAddr.member ? adminAddr.name : "(No Name)" rowsHtml += ` ${displayName} @@ -288,7 +299,7 @@ const displayExistingMinterAdmins = async () => {