Show user's first initial in profile avatar instead of hardcoded U

Save FirstName to localStorage on login (both OTP and password paths).
Portal reads it back and displays the first letter in the user avatar.
Falls back to 'U' if no name is stored. Cleared on logout.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
John Mizerek 2026-02-01 09:38:36 -08:00
parent 05a52c6159
commit 7b19979118
2 changed files with 9 additions and 3 deletions

View file

@ -507,6 +507,8 @@
localStorage.setItem('payfrit_portal_token', token); localStorage.setItem('payfrit_portal_token', token);
localStorage.setItem('payfrit_portal_userid', userId); localStorage.setItem('payfrit_portal_userid', userId);
const firstName = data.FIRSTNAME || data.FirstName || '';
if (firstName) localStorage.setItem('payfrit_portal_firstname', firstName);
await this.loadBusinesses(); await this.loadBusinesses();
@ -629,6 +631,8 @@
localStorage.setItem('payfrit_portal_token', token); localStorage.setItem('payfrit_portal_token', token);
localStorage.setItem('payfrit_portal_userid', userId); localStorage.setItem('payfrit_portal_userid', userId);
const firstName = data.FirstName || data.FIRSTNAME || '';
if (firstName) localStorage.setItem('payfrit_portal_firstname', firstName);
await this.loadBusinesses(); await this.loadBusinesses();
@ -760,6 +764,7 @@
localStorage.removeItem('payfrit_portal_token'); localStorage.removeItem('payfrit_portal_token');
localStorage.removeItem('payfrit_portal_userid'); localStorage.removeItem('payfrit_portal_userid');
localStorage.removeItem('payfrit_portal_business'); localStorage.removeItem('payfrit_portal_business');
localStorage.removeItem('payfrit_portal_firstname');
window.location.href = BASE_PATH + '/portal/login.html'; window.location.href = BASE_PATH + '/portal/login.html';
} }
}; };

View file

@ -113,18 +113,18 @@ const Portal = {
this.businessData = biz; // Store for later use this.businessData = biz; // Store for later use
document.getElementById('businessName').textContent = biz.Name || 'Business'; document.getElementById('businessName').textContent = biz.Name || 'Business';
document.getElementById('businessAvatar').textContent = (biz.Name || 'B').charAt(0).toUpperCase(); document.getElementById('businessAvatar').textContent = (biz.Name || 'B').charAt(0).toUpperCase();
document.getElementById('userAvatar').textContent = 'U'; document.getElementById('userAvatar').textContent = (localStorage.getItem('payfrit_portal_firstname') || 'U').charAt(0).toUpperCase();
} else { } else {
this.businessData = null; this.businessData = null;
document.getElementById('businessName').textContent = 'Business #' + this.config.businessId; document.getElementById('businessName').textContent = 'Business #' + this.config.businessId;
document.getElementById('businessAvatar').textContent = 'B'; document.getElementById('businessAvatar').textContent = 'B';
document.getElementById('userAvatar').textContent = 'U'; document.getElementById('userAvatar').textContent = (localStorage.getItem('payfrit_portal_firstname') || 'U').charAt(0).toUpperCase();
} }
} catch (err) { } catch (err) {
console.error('[Portal] Business info error:', err); console.error('[Portal] Business info error:', err);
document.getElementById('businessName').textContent = 'Business #' + this.config.businessId; document.getElementById('businessName').textContent = 'Business #' + this.config.businessId;
document.getElementById('businessAvatar').textContent = 'B'; document.getElementById('businessAvatar').textContent = 'B';
document.getElementById('userAvatar').textContent = 'U'; document.getElementById('userAvatar').textContent = (localStorage.getItem('payfrit_portal_firstname') || 'U').charAt(0).toUpperCase();
} }
}, },
@ -151,6 +151,7 @@ const Portal = {
localStorage.removeItem('payfrit_portal_token'); localStorage.removeItem('payfrit_portal_token');
localStorage.removeItem('payfrit_portal_userid'); localStorage.removeItem('payfrit_portal_userid');
localStorage.removeItem('payfrit_portal_business'); localStorage.removeItem('payfrit_portal_business');
localStorage.removeItem('payfrit_portal_firstname');
window.location.href = BASE_PATH + '/portal/login.html'; window.location.href = BASE_PATH + '/portal/login.html';
}, },