From 36bdf669468e55dcc8a6320c36e16001150ce16c Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Thu, 30 Jan 2025 13:12:27 -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 9f024d9..972ae75 100644 --- a/assets/js/ARBoard.js +++ b/assets/js/ARBoard.js @@ -241,6 +241,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; @@ -264,16 +283,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} @@ -281,7 +292,7 @@ const displayExistingMinterAdmins = async () => {