feat: add validation for Revolut profile name format
- Add ownerRevolutProfileName field validation when enableRevolutPayment is true - Validate profile name must start with '@' and contain only letters and numbers - Add required field validation for Revolut profile name - Add English and Croatian error messages for validation failures - Update State type to include ownerRevolutProfileName errors Validation regex: /^@[a-zA-Z0-9]+$/ Valid examples: @john123, @ivan, @user2024 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,7 @@ export type State = {
|
|||||||
ownerTown?: string[];
|
ownerTown?: string[];
|
||||||
ownerIBAN?: string[];
|
ownerIBAN?: string[];
|
||||||
currency?: string[];
|
currency?: string[];
|
||||||
|
ownerRevolutProfileName?: string[];
|
||||||
};
|
};
|
||||||
message?: string | null;
|
message?: string | null;
|
||||||
success?: boolean;
|
success?: boolean;
|
||||||
@@ -96,6 +97,26 @@ const FormSchema = (t: IntlTemplateFn) => z.object({
|
|||||||
}, {
|
}, {
|
||||||
message: t("currency-required"),
|
message: t("currency-required"),
|
||||||
path: ["currency"],
|
path: ["currency"],
|
||||||
|
})
|
||||||
|
.refine((data) => {
|
||||||
|
if (data.enableRevolutPayment) {
|
||||||
|
return !!data.ownerRevolutProfileName && data.ownerRevolutProfileName.trim().length > 0;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, {
|
||||||
|
message: t("owner-revolut-profile-required"),
|
||||||
|
path: ["ownerRevolutProfileName"],
|
||||||
|
})
|
||||||
|
.refine((data) => {
|
||||||
|
if (data.enableRevolutPayment && data.ownerRevolutProfileName) {
|
||||||
|
const profileName = data.ownerRevolutProfileName.trim();
|
||||||
|
// Must start with @ and contain only English letters and numbers
|
||||||
|
return /^@[a-zA-Z0-9]+$/.test(profileName);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}, {
|
||||||
|
message: t("owner-revolut-profile-invalid"),
|
||||||
|
path: ["ownerRevolutProfileName"],
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -232,6 +232,8 @@
|
|||||||
"owner-iban-required": "Valid IBAN is mandatory",
|
"owner-iban-required": "Valid IBAN is mandatory",
|
||||||
"owner-iban-invalid": "Invalid IBAN format. Please enter a valid IBAN",
|
"owner-iban-invalid": "Invalid IBAN format. Please enter a valid IBAN",
|
||||||
"currency-required": "Currency is mandatory",
|
"currency-required": "Currency is mandatory",
|
||||||
|
"owner-revolut-profile-required": "Revolut profile name is mandatory",
|
||||||
|
"owner-revolut-profile-invalid": "Invalid Revolut profile format. Must start with '@' and contain only English letters and numbers (e.g., '@john123')",
|
||||||
"validation-failed": "Validation failed. Please check the form and try again."
|
"validation-failed": "Validation failed. Please check the form and try again."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,6 +236,8 @@
|
|||||||
"owner-iban-required": "Ispravan IBAN je obavezan",
|
"owner-iban-required": "Ispravan IBAN je obavezan",
|
||||||
"owner-iban-invalid": "Neispravan IBAN format. Molimo unesite ispravan IBAN.",
|
"owner-iban-invalid": "Neispravan IBAN format. Molimo unesite ispravan IBAN.",
|
||||||
"currency-required": "Valuta je obavezna",
|
"currency-required": "Valuta je obavezna",
|
||||||
|
"owner-revolut-profile-required": "Naziv Revolut profila je obavezan",
|
||||||
|
"owner-revolut-profile-invalid": "Neispravan format Revolut profila. Mora počinjati sa '@' i sadržavati samo slova i brojeve (npr. '@ivan123')",
|
||||||
"validation-failed": "Validacija nije uspjela. Molimo provjerite formu i pokušajte ponovno."
|
"validation-failed": "Validacija nije uspjela. Molimo provjerite formu i pokušajte ponovno."
|
||||||
},
|
},
|
||||||
"payment-additional-notes": "VAŽNO: da bi upute za uplatu bile prikazane podstanaru, morate tu ovu opciju uključiti i u postavkama pripadajuće nekretnine."
|
"payment-additional-notes": "VAŽNO: da bi upute za uplatu bile prikazane podstanaru, morate tu ovu opciju uključiti i u postavkama pripadajuće nekretnine."
|
||||||
|
|||||||
Reference in New Issue
Block a user