41 lines
802 B
TypeScript
41 lines
802 B
TypeScript
export function normalizePhoneE164(input?: string | null) {
|
|
const digits = String(input || "").replace(/\D/g, "")
|
|
if (!digits) {
|
|
return ""
|
|
}
|
|
|
|
if (digits.length === 10) {
|
|
return `+1${digits}`
|
|
}
|
|
|
|
if (digits.length === 11 && digits.startsWith("1")) {
|
|
return `+${digits}`
|
|
}
|
|
|
|
if (digits.length >= 11) {
|
|
return `+${digits}`
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
export function splitDisplayName(name?: string | null) {
|
|
const trimmed = String(name || "").trim()
|
|
if (!trimmed) {
|
|
return {
|
|
firstName: "",
|
|
lastName: "",
|
|
displayName: "",
|
|
}
|
|
}
|
|
|
|
const parts = trimmed.split(/\s+/)
|
|
const firstName = parts.shift() || ""
|
|
const lastName = parts.join(" ")
|
|
|
|
return {
|
|
firstName,
|
|
lastName,
|
|
displayName: [firstName, lastName].filter(Boolean).join(" "),
|
|
}
|
|
}
|