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:
parent
05a52c6159
commit
7b19979118
2 changed files with 9 additions and 3 deletions
|
|
@ -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';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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';
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
Reference in a new issue