fix: allow any type of phone number

This commit is contained in:
Simon Emanuelsson
2025-05-22 17:21:13 +02:00
committed by Michael Zetterberg
parent 79e669020a
commit 9580281421
22 changed files with 400 additions and 459 deletions

View File

@@ -1,5 +1,6 @@
"use client"
import { zodResolver } from "@hookform/resolvers/zod"
import { parsePhoneNumberFromString } from "libphonenumber-js"
import { useCallback, useEffect, useMemo } from "react"
import { FormProvider, useForm } from "react-hook-form"
import { useIntl } from "react-intl"
@@ -52,6 +53,14 @@ export default function Details() {
[idx, rooms]
)
const initialPhoneNumber = initialData.phoneNumber
const parsedInitialPhoneNumber = initialPhoneNumber
? parsePhoneNumberFromString(initialPhoneNumber)
: undefined
let initialPhoneNumberCC = initialData.phoneNumberCC
if (parsedInitialPhoneNumber && !initialPhoneNumberCC) {
initialPhoneNumberCC = parsedInitialPhoneNumber.country ?? ""
}
const methods = useForm({
defaultValues: {
countryCode: initialData.countryCode,
@@ -60,7 +69,10 @@ export default function Details() {
join: initialData.join,
lastName: initialData.lastName,
membershipNo: initialData.membershipNo,
phoneNumber: initialData.phoneNumber,
phoneNumber: parsedInitialPhoneNumber?.isValid()
? parsedInitialPhoneNumber?.number
: initialPhoneNumber,
phoneNumberCC: initialPhoneNumberCC,
specialRequest: {
comment: room.specialRequest.comment,
},
@@ -89,7 +101,7 @@ export default function Details() {
}
}, [handleSubmit, isValid, setIncomplete, updateDetails])
useEffect(updateDetailsStore, [methods.formState.isValid, updateDetailsStore])
useEffect(updateDetailsStore, [updateDetailsStore])
// Trigger validation of the room manually when another room changes its data.
// Only do it if the field has a value, to avoid error states before the user

View File

@@ -50,6 +50,7 @@ export function getMultiroomDetailsSchema(
multiroomErrors.PHONE_REQUIRED,
multiroomErrors.PHONE_REQUESTED
),
phoneNumberCC: z.string(),
membershipNo: z
.string()
.optional()