taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit fa10ba63e84cdfdcc8f5023b1be53887e00529bc
parent 67233ce29361ac8377980dc6cb365e94d0add6fe
Author: Sebastian <sebasjm@gmail.com>
Date:   Wed, 14 May 2025 12:20:28 -0300

fix #9866

Diffstat:
Mpackages/web-util/src/forms/gana/VQF_902_4.ts | 47+++++++++++++++++++++++++++++++++++++++++++++++
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] !=