fix: validation in details form
This commit is contained in:
@@ -2,11 +2,25 @@ import { z } from "zod"
|
|||||||
|
|
||||||
import { phoneValidator } from "@/utils/phoneValidator"
|
import { phoneValidator } from "@/utils/phoneValidator"
|
||||||
|
|
||||||
|
const stringMatcher = /^[\p{L}\s\-\.]+$/u
|
||||||
|
|
||||||
|
const isValidString = (key: string) => stringMatcher.test(key)
|
||||||
|
|
||||||
export const baseDetailsSchema = z.object({
|
export const baseDetailsSchema = z.object({
|
||||||
countryCode: z.string(),
|
countryCode: z.string().min(1, { message: "Country is required" }),
|
||||||
email: z.string().email(),
|
email: z.string().email({ message: "Email address is required" }),
|
||||||
firstName: z.string(),
|
firstName: z
|
||||||
lastName: z.string(),
|
.string()
|
||||||
|
.min(1, { message: "First name is required" })
|
||||||
|
.refine(isValidString, {
|
||||||
|
message: "First name can't contain any special charachters",
|
||||||
|
}),
|
||||||
|
lastName: z
|
||||||
|
.string()
|
||||||
|
.min(1, { message: "Last name is required" })
|
||||||
|
.refine(isValidString, {
|
||||||
|
message: "Last name can't contain any special charachters",
|
||||||
|
}),
|
||||||
phoneNumber: phoneValidator(),
|
phoneNumber: phoneValidator(),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
"Could not find requested resource": "Kunne ikke finde den anmodede ressource",
|
"Could not find requested resource": "Kunne ikke finde den anmodede ressource",
|
||||||
"Country": "Land",
|
"Country": "Land",
|
||||||
"Country code": "Landekode",
|
"Country code": "Landekode",
|
||||||
|
"Country is required": "Land er påkrævet",
|
||||||
"Creative spaces for meetings": "Kreative rum til møder",
|
"Creative spaces for meetings": "Kreative rum til møder",
|
||||||
"Credit card": "Kreditkort",
|
"Credit card": "Kreditkort",
|
||||||
"Credit card deleted successfully": "Kreditkort blev slettet",
|
"Credit card deleted successfully": "Kreditkort blev slettet",
|
||||||
@@ -124,6 +125,7 @@
|
|||||||
"Edit profile": "Rediger profil",
|
"Edit profile": "Rediger profil",
|
||||||
"Email": "E-mail",
|
"Email": "E-mail",
|
||||||
"Email address": "E-mailadresse",
|
"Email address": "E-mailadresse",
|
||||||
|
"Email address is required": "Email address is required",
|
||||||
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
||||||
"Enter destination or hotel": "Indtast destination eller hotel",
|
"Enter destination or hotel": "Indtast destination eller hotel",
|
||||||
"Enter your details": "Indtast dine oplysninger",
|
"Enter your details": "Indtast dine oplysninger",
|
||||||
@@ -141,6 +143,8 @@
|
|||||||
"Find booking": "Find booking",
|
"Find booking": "Find booking",
|
||||||
"Find hotels": "Find hotel",
|
"Find hotels": "Find hotel",
|
||||||
"First name": "Fornavn",
|
"First name": "Fornavn",
|
||||||
|
"First name can't contain any special charachters": "Fornavn kan ikke indeholde specielle tegn",
|
||||||
|
"First name is required": "Fornavn er påkrævet",
|
||||||
"Flexibility": "Fleksibilitet",
|
"Flexibility": "Fleksibilitet",
|
||||||
"Follow us": "Følg os",
|
"Follow us": "Følg os",
|
||||||
"Food options": "Madvalg",
|
"Food options": "Madvalg",
|
||||||
@@ -190,6 +194,8 @@
|
|||||||
"King bed": "Kingsize-seng",
|
"King bed": "Kingsize-seng",
|
||||||
"Language": "Sprog",
|
"Language": "Sprog",
|
||||||
"Last name": "Efternavn",
|
"Last name": "Efternavn",
|
||||||
|
"Last name can't contain any special charachters": "Efternavn kan ikke indeholde specielle tegn",
|
||||||
|
"Last name is required": "Efternavn er påkrævet",
|
||||||
"Latest searches": "Seneste søgninger",
|
"Latest searches": "Seneste søgninger",
|
||||||
"Left": "tilbage",
|
"Left": "tilbage",
|
||||||
"Level": "Niveau",
|
"Level": "Niveau",
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
"Could not find requested resource": "Die angeforderte Ressource konnte nicht gefunden werden.",
|
"Could not find requested resource": "Die angeforderte Ressource konnte nicht gefunden werden.",
|
||||||
"Country": "Land",
|
"Country": "Land",
|
||||||
"Country code": "Landesvorwahl",
|
"Country code": "Landesvorwahl",
|
||||||
|
"Country is required": "Land ist erforderlich",
|
||||||
"Creative spaces for meetings": "Kreative Räume für Meetings",
|
"Creative spaces for meetings": "Kreative Räume für Meetings",
|
||||||
"Credit card": "Kreditkarte",
|
"Credit card": "Kreditkarte",
|
||||||
"Credit card deleted successfully": "Kreditkarte erfolgreich gelöscht",
|
"Credit card deleted successfully": "Kreditkarte erfolgreich gelöscht",
|
||||||
@@ -124,6 +125,7 @@
|
|||||||
"Edit profile": "Profil bearbeiten",
|
"Edit profile": "Profil bearbeiten",
|
||||||
"Email": "Email",
|
"Email": "Email",
|
||||||
"Email address": "E-Mail-Adresse",
|
"Email address": "E-Mail-Adresse",
|
||||||
|
"Email address is required": "E-Mail-Adresse ist erforderlich",
|
||||||
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
||||||
"Enter destination or hotel": "Reiseziel oder Hotel eingeben",
|
"Enter destination or hotel": "Reiseziel oder Hotel eingeben",
|
||||||
"Enter your details": "Geben Sie Ihre Daten ein",
|
"Enter your details": "Geben Sie Ihre Daten ein",
|
||||||
@@ -141,6 +143,8 @@
|
|||||||
"Find booking": "Buchung finden",
|
"Find booking": "Buchung finden",
|
||||||
"Find hotels": "Hotels finden",
|
"Find hotels": "Hotels finden",
|
||||||
"First name": "Vorname",
|
"First name": "Vorname",
|
||||||
|
"First name can't contain any special charachters": "Der Vorname darf keine Sonderzeichen enthalten",
|
||||||
|
"First name is required": "Vorname ist erforderlich",
|
||||||
"Flexibility": "Flexibilität",
|
"Flexibility": "Flexibilität",
|
||||||
"Follow us": "Folgen Sie uns",
|
"Follow us": "Folgen Sie uns",
|
||||||
"Food options": "Speisen & Getränke",
|
"Food options": "Speisen & Getränke",
|
||||||
@@ -190,6 +194,8 @@
|
|||||||
"King bed": "Kingsize-Bett",
|
"King bed": "Kingsize-Bett",
|
||||||
"Language": "Sprache",
|
"Language": "Sprache",
|
||||||
"Last name": "Nachname",
|
"Last name": "Nachname",
|
||||||
|
"Last name can't contain any special charachters": "Der Nachname darf keine Sonderzeichen enthalten",
|
||||||
|
"Last name is required": "Nachname ist erforderlich",
|
||||||
"Latest searches": "Letzte Suchanfragen",
|
"Latest searches": "Letzte Suchanfragen",
|
||||||
"Left": "übrig",
|
"Left": "übrig",
|
||||||
"Level": "Level",
|
"Level": "Level",
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
"Could not find requested resource": "Could not find requested resource",
|
"Could not find requested resource": "Could not find requested resource",
|
||||||
"Country": "Country",
|
"Country": "Country",
|
||||||
"Country code": "Country code",
|
"Country code": "Country code",
|
||||||
|
"Country is required": "Country is required",
|
||||||
"Creative spaces for meetings": "Creative spaces for meetings",
|
"Creative spaces for meetings": "Creative spaces for meetings",
|
||||||
"Credit card": "Credit card",
|
"Credit card": "Credit card",
|
||||||
"Credit card deleted successfully": "Credit card deleted successfully",
|
"Credit card deleted successfully": "Credit card deleted successfully",
|
||||||
@@ -134,6 +135,7 @@
|
|||||||
"Edit profile": "Edit profile",
|
"Edit profile": "Edit profile",
|
||||||
"Email": "Email",
|
"Email": "Email",
|
||||||
"Email address": "Email address",
|
"Email address": "Email address",
|
||||||
|
"Email address is required": "Email address is required",
|
||||||
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
||||||
"Enter destination or hotel": "Enter destination or hotel",
|
"Enter destination or hotel": "Enter destination or hotel",
|
||||||
"Enter your details": "Enter your details",
|
"Enter your details": "Enter your details",
|
||||||
@@ -151,6 +153,8 @@
|
|||||||
"Find booking": "Find booking",
|
"Find booking": "Find booking",
|
||||||
"Find hotels": "Find hotels",
|
"Find hotels": "Find hotels",
|
||||||
"First name": "First name",
|
"First name": "First name",
|
||||||
|
"First name can't contain any special charachters": "First name can't contain any special charachters",
|
||||||
|
"First name is required": "First name is required",
|
||||||
"Flexibility": "Flexibility",
|
"Flexibility": "Flexibility",
|
||||||
"Follow us": "Follow us",
|
"Follow us": "Follow us",
|
||||||
"Food options": "Food options",
|
"Food options": "Food options",
|
||||||
@@ -206,6 +210,8 @@
|
|||||||
"King bed": "King bed",
|
"King bed": "King bed",
|
||||||
"Language": "Language",
|
"Language": "Language",
|
||||||
"Last name": "Last name",
|
"Last name": "Last name",
|
||||||
|
"Last name can't contain any special charachters": "Last name can't contain any special charachters",
|
||||||
|
"Last name is required": "Last name is required",
|
||||||
"Latest searches": "Latest searches",
|
"Latest searches": "Latest searches",
|
||||||
"Latitude": "Latitude {lat}",
|
"Latitude": "Latitude {lat}",
|
||||||
"Left": "left",
|
"Left": "left",
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
"Could not find requested resource": "Pyydettyä resurssia ei löytynyt",
|
"Could not find requested resource": "Pyydettyä resurssia ei löytynyt",
|
||||||
"Country": "Maa",
|
"Country": "Maa",
|
||||||
"Country code": "Maatunnus",
|
"Country code": "Maatunnus",
|
||||||
|
"Country is required": "Maa vaaditaan",
|
||||||
"Creative spaces for meetings": "Luovia tiloja kokouksille",
|
"Creative spaces for meetings": "Luovia tiloja kokouksille",
|
||||||
"Credit card": "Luottokortti",
|
"Credit card": "Luottokortti",
|
||||||
"Credit card deleted successfully": "Luottokortti poistettu onnistuneesti",
|
"Credit card deleted successfully": "Luottokortti poistettu onnistuneesti",
|
||||||
@@ -124,6 +125,7 @@
|
|||||||
"Edit profile": "Muokkaa profiilia",
|
"Edit profile": "Muokkaa profiilia",
|
||||||
"Email": "Sähköposti",
|
"Email": "Sähköposti",
|
||||||
"Email address": "Sähköpostiosoite",
|
"Email address": "Sähköpostiosoite",
|
||||||
|
"Email address is required": "Sähköpostiosoite vaaditaan",
|
||||||
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
||||||
"Enter destination or hotel": "Anna kohde tai hotelli",
|
"Enter destination or hotel": "Anna kohde tai hotelli",
|
||||||
"Enter your details": "Anna tietosi",
|
"Enter your details": "Anna tietosi",
|
||||||
@@ -141,6 +143,8 @@
|
|||||||
"Find booking": "Etsi varaus",
|
"Find booking": "Etsi varaus",
|
||||||
"Find hotels": "Etsi hotelleja",
|
"Find hotels": "Etsi hotelleja",
|
||||||
"First name": "Etunimi",
|
"First name": "Etunimi",
|
||||||
|
"First name can't contain any special charachters": "Etunimi ei voi sisältää erikoismerkkejä",
|
||||||
|
"First name is required": "Etunimi vaaditaan",
|
||||||
"Flexibility": "Joustavuus",
|
"Flexibility": "Joustavuus",
|
||||||
"Follow us": "Seuraa meitä",
|
"Follow us": "Seuraa meitä",
|
||||||
"Food options": "Ruokavalio",
|
"Food options": "Ruokavalio",
|
||||||
@@ -190,6 +194,8 @@
|
|||||||
"King bed": "King-vuode",
|
"King bed": "King-vuode",
|
||||||
"Language": "Kieli",
|
"Language": "Kieli",
|
||||||
"Last name": "Sukunimi",
|
"Last name": "Sukunimi",
|
||||||
|
"Last name can't contain any special charachters": "Sukunimi ei voi sisältää erikoismerkkejä",
|
||||||
|
"Last name is required": "Sukunimi vaaditaan",
|
||||||
"Latest searches": "Viimeisimmät haut",
|
"Latest searches": "Viimeisimmät haut",
|
||||||
"Left": "jäljellä",
|
"Left": "jäljellä",
|
||||||
"Level": "Level",
|
"Level": "Level",
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
"Could not find requested resource": "Kunne ikke finne den forespurte ressursen",
|
"Could not find requested resource": "Kunne ikke finne den forespurte ressursen",
|
||||||
"Country": "Land",
|
"Country": "Land",
|
||||||
"Country code": "Landskode",
|
"Country code": "Landskode",
|
||||||
|
"Country is required": "Land kreves",
|
||||||
"Creative spaces for meetings": "Kreative rom for møter",
|
"Creative spaces for meetings": "Kreative rom for møter",
|
||||||
"Credit card deleted successfully": "Kredittkort slettet",
|
"Credit card deleted successfully": "Kredittkort slettet",
|
||||||
"Currency Code": "NOK",
|
"Currency Code": "NOK",
|
||||||
@@ -123,6 +124,7 @@
|
|||||||
"Edit profile": "Rediger profil",
|
"Edit profile": "Rediger profil",
|
||||||
"Email": "E-post",
|
"Email": "E-post",
|
||||||
"Email address": "E-postadresse",
|
"Email address": "E-postadresse",
|
||||||
|
"Email address is required": "E-postadresse kreves",
|
||||||
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
||||||
"Enter destination or hotel": "Skriv inn destinasjon eller hotell",
|
"Enter destination or hotel": "Skriv inn destinasjon eller hotell",
|
||||||
"Enter your details": "Skriv inn detaljene dine",
|
"Enter your details": "Skriv inn detaljene dine",
|
||||||
@@ -140,6 +142,8 @@
|
|||||||
"Find booking": "Finn booking",
|
"Find booking": "Finn booking",
|
||||||
"Find hotels": "Finn hotell",
|
"Find hotels": "Finn hotell",
|
||||||
"First name": "Fornavn",
|
"First name": "Fornavn",
|
||||||
|
"First name can't contain any special charachters": "Fornavn kan ikke inneholde spesielle tegn",
|
||||||
|
"First name is required": "Fornavn kreves",
|
||||||
"Flexibility": "Fleksibilitet",
|
"Flexibility": "Fleksibilitet",
|
||||||
"Follow us": "Følg oss",
|
"Follow us": "Følg oss",
|
||||||
"Food options": "Matvalg",
|
"Food options": "Matvalg",
|
||||||
@@ -188,6 +192,8 @@
|
|||||||
"King bed": "King-size-seng",
|
"King bed": "King-size-seng",
|
||||||
"Language": "Språk",
|
"Language": "Språk",
|
||||||
"Last name": "Etternavn",
|
"Last name": "Etternavn",
|
||||||
|
"Last name can't contain any special charachters": "Etternavn kan ikke inneholde spesielle tegn",
|
||||||
|
"Last name is required": "Etternavn kreves",
|
||||||
"Latest searches": "Siste søk",
|
"Latest searches": "Siste søk",
|
||||||
"Left": "igjen",
|
"Left": "igjen",
|
||||||
"Level": "Nivå",
|
"Level": "Nivå",
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
"Could not find requested resource": "Det gick inte att hitta den begärda resursen",
|
"Could not find requested resource": "Det gick inte att hitta den begärda resursen",
|
||||||
"Country": "Land",
|
"Country": "Land",
|
||||||
"Country code": "Landskod",
|
"Country code": "Landskod",
|
||||||
|
"Country is required": "Land är obligatoriskt",
|
||||||
"Creative spaces for meetings": "Kreativa utrymmen för möten",
|
"Creative spaces for meetings": "Kreativa utrymmen för möten",
|
||||||
"Credit card deleted successfully": "Kreditkort har tagits bort",
|
"Credit card deleted successfully": "Kreditkort har tagits bort",
|
||||||
"Currency Code": "SEK",
|
"Currency Code": "SEK",
|
||||||
@@ -123,6 +124,7 @@
|
|||||||
"Edit profile": "Redigera profil",
|
"Edit profile": "Redigera profil",
|
||||||
"Email": "E-post",
|
"Email": "E-post",
|
||||||
"Email address": "E-postadress",
|
"Email address": "E-postadress",
|
||||||
|
"Email address is required": "E-postadress är obligatorisk",
|
||||||
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
"Enjoy relaxed restaurant experiences": "Enjoy relaxed restaurant experiences",
|
||||||
"Enter destination or hotel": "Ange destination eller hotell",
|
"Enter destination or hotel": "Ange destination eller hotell",
|
||||||
"Enter your details": "Ange dina uppgifter",
|
"Enter your details": "Ange dina uppgifter",
|
||||||
@@ -140,6 +142,8 @@
|
|||||||
"Find booking": "Hitta bokning",
|
"Find booking": "Hitta bokning",
|
||||||
"Find hotels": "Hitta hotell",
|
"Find hotels": "Hitta hotell",
|
||||||
"First name": "Förnamn",
|
"First name": "Förnamn",
|
||||||
|
"First name can't contain any special charachters": "Förnamn får inte innehålla några specialtecken",
|
||||||
|
"First name is required": "Förnamn är obligatoriskt",
|
||||||
"Flexibility": "Flexibilitet",
|
"Flexibility": "Flexibilitet",
|
||||||
"Follow us": "Följ oss",
|
"Follow us": "Följ oss",
|
||||||
"Food options": "Matval",
|
"Food options": "Matval",
|
||||||
@@ -189,6 +193,8 @@
|
|||||||
"King bed": "King size-säng",
|
"King bed": "King size-säng",
|
||||||
"Language": "Språk",
|
"Language": "Språk",
|
||||||
"Last name": "Efternamn",
|
"Last name": "Efternamn",
|
||||||
|
"Last name can't contain any special charachters": "Efternamn får inte innehålla några specialtecken",
|
||||||
|
"Last name is required": "Efternamn är obligatoriskt",
|
||||||
"Latest searches": "Senaste sökningarna",
|
"Latest searches": "Senaste sökningarna",
|
||||||
"Left": "kvar",
|
"Left": "kvar",
|
||||||
"Level": "Nivå",
|
"Level": "Nivå",
|
||||||
|
|||||||
Reference in New Issue
Block a user