23 lines
714 B
TypeScript
23 lines
714 B
TypeScript
/** دو حرف از اسم و فامیل برای آواتار (اولِ نام + اولِ نامخانوادگی) */
|
|
export function getNameAvatarInitials(name: string, fallback = '؟'): string {
|
|
const parts = String(name || '')
|
|
.trim()
|
|
.split(/\s+/)
|
|
.filter(Boolean)
|
|
|
|
if (!parts.length) return fallback
|
|
|
|
const firstChars = (word: string) => Array.from(word)
|
|
|
|
if (parts.length === 1) {
|
|
const chars = firstChars(parts[0])
|
|
if (!chars.length) return fallback
|
|
return chars.slice(0, 2).join('')
|
|
}
|
|
|
|
const first = firstChars(parts[0])[0] || ''
|
|
const last = firstChars(parts[parts.length - 1])[0] || ''
|
|
const initials = `${first}${last}`.trim()
|
|
return initials || fallback
|
|
}
|