fix(LOY-280): phone number validation * fix(LOY-280): phone number validation * Return formatted phonenumber even though its not valid Approved-by: Christian Andolf
27 lines
714 B
TypeScript
27 lines
714 B
TypeScript
import parsePhoneNumberFromString, { type CountryCode } from "libphonenumber-js"
|
|
|
|
export function formatPhoneNumber(
|
|
phoneNumber: string,
|
|
phoneNumberCC?: string | null
|
|
): string {
|
|
if (!phoneNumber) return ""
|
|
|
|
const normalized = phoneNumber.trim().replaceAll(/-|\s/g, "")
|
|
|
|
const parsedPhonenumber = phoneNumberCC?.length
|
|
? parsePhoneNumberFromString(
|
|
normalized,
|
|
phoneNumberCC.toUpperCase() as CountryCode
|
|
)
|
|
: parsePhoneNumberFromString(normalized)
|
|
|
|
if (!parsedPhonenumber?.isValid()) {
|
|
console.warn(
|
|
`Invalid phone number: ${phoneNumber} with country code: ${phoneNumberCC}`,
|
|
parsedPhonenumber
|
|
)
|
|
}
|
|
|
|
return parsedPhonenumber?.number || normalized
|
|
}
|