taler-typescript-core

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

commit 7cfc43bd5226fb68f8435699574fd5ff3804206d
parent e3546f7c4e414b23b007e8606e8465cadce8449c
Author: Sebastian <sebasjm@gmail.com>
Date:   Mon, 10 Mar 2025 16:39:37 -0300

restore section.hide()

Diffstat:
Mpackages/web-util/src/forms/forms-types.ts | 2+-
Mpackages/web-util/src/forms/forms-ui.tsx | 8--------
Mpackages/web-util/src/hooks/useForm.ts | 24++++++++----------------
Mpackages/web-util/src/stories-utils.tsx | 1-
4 files changed, 9 insertions(+), 26 deletions(-)

diff --git a/packages/web-util/src/forms/forms-types.ts b/packages/web-util/src/forms/forms-types.ts @@ -46,7 +46,7 @@ export type DoubleColumnFormSection = { return if the field should be hidden. receives the value after conversion and the root of the form. */ - // hide?: (root: undefined | Record<string, any>) => boolean | undefined; + hide?: (root: undefined | Record<string, any>) => boolean | undefined; }; export type UIFormElementConfig = diff --git a/packages/web-util/src/forms/forms-ui.tsx b/packages/web-util/src/forms/forms-ui.tsx @@ -176,14 +176,6 @@ export function RenderAllFieldsByUiConfig({ const Component = UIFormConfiguration[ field.type ] as FieldComponentFunction<any>; - // if ("handler" in field.properties && field.properties.handler) { - // if ( - // field.properties.name === - // TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_FULL_NAME.id - // ) { - // console.log("QWEQWE", field.properties.name, field.properties.hidden); - // } - // } const p = { ...field.properties, focus: !!focus && i === 0 }; return <Component key={i} {...p} />; diff --git a/packages/web-util/src/hooks/useForm.ts b/packages/web-util/src/hooks/useForm.ts @@ -228,11 +228,6 @@ function validateRequiredFields<FormType>( switch (formDesign.type) { case "double-column": { formDesign.sections.forEach((sec) => { - const hidden = sec.hide ? sec.hide(formData) : undefined; - if (hidden) { - // Do not validate hidden fields - return; - } sec.fields.forEach(checkIfRequiredFieldHasValue); }); break; @@ -258,7 +253,10 @@ function constructFormHandler<T>( let handler: FormHandler<T> = {}; let result = {} as FormStatus<T>; - function createFieldHandler(formElement: UIFormElementConfig): void { + function createFieldHandler( + formElement: UIFormElementConfig, + hiddenSection: boolean | undefined, + ): void { if (!("id" in formElement)) { return; } @@ -289,17 +287,10 @@ function constructFormHandler<T>( handler = setValueIntoPath(handler, path, field); const hidden = + hiddenSection === true || formElement.hidden === true || (formElement.hide && formElement.hide(field.value, result) === true); - // console.log( - // "KPM", - // path, - // hidden, - // currentValue, - // formElement.hidden, - // !formElement.hide ? undefined : formElement.hide(field.value, result), - // ); if (!hidden) { result = setValueIntoPath(result, path, field.value); } @@ -308,12 +299,13 @@ function constructFormHandler<T>( switch (design.type) { case "double-column": { design.sections.forEach((sec) => { - sec.fields.forEach((f) => createFieldHandler(f)); + const hidden = sec.hide && sec.hide(result); + sec.fields.forEach((f) => createFieldHandler(f, hidden)); }); break; } case "single-column": { - design.fields.forEach((f) => createFieldHandler(f)); + design.fields.forEach((f) => createFieldHandler(f, undefined)); break; } default: { diff --git a/packages/web-util/src/stories-utils.tsx b/packages/web-util/src/stories-utils.tsx @@ -566,7 +566,6 @@ function ResizeHandle({ onUpdate }: { onUpdate: (x: number) => void }): VNode { <ResizeHandleDiv onMouseDown={(e: any) => { setStart(e.pageX); - console.log("active", e.pageX); return false; }} onMouseMove={(e: any) => {