/opt/canhelp/apps/web/src/lib
Edit: /opt/canhelp/apps/web/src/lib/formatName.ts (865B)
/**
* Shortens the last name to first letter + period.
* "Иван Петров" → "Иван П."
* Works with a pre-composed full name string.
*/
export function shortName(fullName?: string | null): string {
if (!fullName?.trim()) return '—'
const parts = fullName.trim().split(/\s+/)
if (parts.length < 2 || !parts[1]) return parts[0]
return `${parts[0]} ${parts[1][0].toUpperCase()}.`
}
/**
* Formats separate firstName + lastName fields, shortening the last name.
* Falls back to parsing fullName if firstName is not available.
*/
export function formatShortName(
firstName?: string | null,
lastName?: string | null,
fallbackName?: string | null,
): string {
if (firstName?.trim()) {
const l = lastName?.trim()
return l ? `${firstName.trim()} ${l[0].toUpperCase()}.` : firstName.trim()
}
return shortName(fallbackName)
}