Files
web/apps/scandic-web/utils/zod/phoneValidator.ts
Christian Andolf 9da986f554 fix: extrapolate phone number parsing for re-usage in edit profile
move error messages to message handler
2025-06-13 10:46:15 +02:00

27 lines
687 B
TypeScript

import { z } from "zod"
export const phoneErrors = {
PHONE_NUMBER_TOO_SHORT: "PHONE_NUMBER_TOO_SHORT",
PHONE_REQUESTED: "PHONE_REQUESTED",
} as const
export function phoneValidator(
msg = "Required field",
invalidMsg = "Invalid type"
) {
return z
.string({ invalid_type_error: invalidMsg, required_error: msg })
.min(5, phoneErrors.PHONE_NUMBER_TOO_SHORT)
.superRefine((value, ctx) => {
if (value) {
const containsAlphabeticChars = /[a-z]/gi.test(value)
if (containsAlphabeticChars) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: phoneErrors.PHONE_REQUESTED,
})
}
}
})
}