commit 7cfc43bd5226fb68f8435699574fd5ff3804206d
parent e3546f7c4e414b23b007e8606e8465cadce8449c
Author: Sebastian <sebasjm@gmail.com>
Date: Mon, 10 Mar 2025 16:39:37 -0300
restore section.hide()
Diffstat:
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) => {