commit fa10ba63e84cdfdcc8f5023b1be53887e00529bc
parent 67233ce29361ac8377980dc6cb365e94d0add6fe
Author: Sebastian <sebasjm@gmail.com>
Date: Wed, 14 May 2025 12:20:28 -0300
fix #9866
Diffstat:
1 file changed, 47 insertions(+), 0 deletions(-)
diff --git a/packages/web-util/src/forms/gana/VQF_902_4.ts b/packages/web-util/src/forms/gana/VQF_902_4.ts
@@ -4,6 +4,7 @@ import {
FormMetadata,
InternationalizationAPI,
} from "../../index.browser.js";
+import { intervalToDuration, parse, isFuture } from "date-fns";
export const form_vqf_902_4 = (
i18n: InternationalizationAPI,
@@ -83,6 +84,21 @@ export function VQF_902_4(
placeholder: "dd/MM/yyyy",
pattern: "dd/MM/yyyy",
required: true,
+ validator(text, form) {
+ //FIXME: why returning in this format even if pattern is in another?
+ const time = parse(text, "yyyy-MM-dd", new Date());
+ if (isFuture(time)) {
+ return i18n.str`it can't be in the future`;
+ }
+ const { years } = intervalToDuration({
+ start: new Date(),
+ end: time,
+ });
+ if (years && years > 120) {
+ return i18n.str`it can't be greater than 120 years`;
+ }
+ return undefined;
+ },
hide(value, root) {
return !(
root[TalerFormAttributes.PEP_FOREIGN] ||
@@ -122,6 +138,22 @@ export function VQF_902_4(
placeholder: "dd/MM/yyyy",
pattern: "dd/MM/yyyy",
required: true,
+ validator(text, form) {
+ //FIXME: why returning in this format even if pattern is in another?
+ const time = parse(text, "yyyy-MM-dd", new Date());
+ if (isFuture(time)) {
+ return i18n.str`it can't be in the future`;
+ }
+ const { years } = intervalToDuration({
+ start: new Date(),
+ end: time,
+ });
+ if (years && years > 120) {
+ return i18n.str`it can't be greater than 120 years`;
+ }
+ return undefined;
+ },
+
hide(value, root) {
return !root[TalerFormAttributes.HIGH_RISK_COUNTRY];
},
@@ -343,6 +375,21 @@ export function VQF_902_4(
placeholder: "dd/MM/yyyy",
pattern: "dd/MM/yyyy",
required: true,
+ validator(text, form) {
+ //FIXME: why returning in this format even if pattern is in another?
+ const time = parse(text, "yyyy-MM-dd", new Date());
+ if (isFuture(time)) {
+ return i18n.str`it can't be in the future`;
+ }
+ const { years } = intervalToDuration({
+ start: new Date(),
+ end: time,
+ });
+ if (years && years > 120) {
+ return i18n.str`it can't be greater than 120 years`;
+ }
+ return undefined;
+ },
hide(value, root) {
return (
root[TalerFormAttributes.RISK_CLASSIFICATION_LEVEL] !=