Fix member cards: round avatar images, badge placement, click handler for modal

This commit is contained in:
Kato
2026-09-05 13:25:23 +00:00
parent dc4d3f3d3a
commit 683c212667
+16 -4
View File
@@ -548,15 +548,17 @@ async function loadUsers() {
function createMemberCard(user) { function createMemberCard(user) {
const card = document.createElement('div'); const card = document.createElement('div');
card.className = 'member-card'; card.className = 'member-card';
card.setAttribute('role', 'button');
card.setAttribute('tabindex', '0');
const rank = getRank(user.posts || 0); const rank = getRank(user.posts || 0);
const avatarContent = user.image const avatarContent = user.image
? `<img src="${user.image}" alt="${user.username}">` ? `<img src="${user.image}" alt="${user.username}" loading="lazy">`
: (user.username || '?').charAt(0).toUpperCase(); : `<span class="user-avatar-text">${(user.username || '?').charAt(0).toUpperCase()}</span>`;
card.innerHTML = ` card.innerHTML = `
<div class="user-avatar">${avatarContent}</div> <div class="user-avatar">${avatarContent}</div>
<div class="member-info" style="position:relative;"> <div class="member-info">
<h4>${user.username || 'N/A'}</h4> <h4>${user.username || 'N/A'}</h4>
<p class="member-company">${user.company || ''}</p> <p class="member-company">${user.company || ''}</p>
${user.location ? `<p class="member-location">📍 ${user.location}</p>` : ''} ${user.location ? `<p class="member-location">📍 ${user.location}</p>` : ''}
@@ -565,7 +567,17 @@ function createMemberCard(user) {
</div> </div>
`; `;
card.addEventListener('click', () => openUserDetailModal(user)); card.addEventListener('click', (e) => {
e.stopPropagation();
openUserDetailModal(user);
});
card.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
openUserDetailModal(user);
}
});
return card; return card;
} }