Enhance user profile management and Gravatar integration
- Added email field to user profile API and frontend components for better user identification. - Implemented PATCH /map/api/me endpoint to update user email, enhancing user experience. - Introduced useGravatarUrl composable for generating Gravatar URLs based on user email. - Updated profile and layout components to display user avatars using Gravatar, improving visual consistency. - Enhanced development documentation to guide testing of navbar and profile features.
This commit is contained in:
16
frontend-nuxt/composables/useGravatarUrl.ts
Normal file
16
frontend-nuxt/composables/useGravatarUrl.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import md5 from 'md5'
|
||||
|
||||
/**
|
||||
* Returns Gravatar avatar URL for the given email, or empty string if no email.
|
||||
* Gravatar expects: trim, lowercase, then MD5 hex. Use empty string to show a placeholder (e.g. initial letter) in the UI.
|
||||
*
|
||||
* @param email - User email (optional)
|
||||
* @param size - Avatar size in pixels (default 64; navbar 32, drawer 40, profile 64–80)
|
||||
*/
|
||||
export function useGravatarUrl(email: string | undefined, size?: number): string {
|
||||
const normalized = email?.trim().toLowerCase()
|
||||
if (!normalized) return ''
|
||||
const hash = md5(normalized)
|
||||
const s = size ?? 64
|
||||
return `https://www.gravatar.com/avatar/${hash}?s=${s}&d=identicon`
|
||||
}
|
||||
Reference in New Issue
Block a user