From dff72fbf2f49d372423da8bc2840aad6d9c1ea1b Mon Sep 17 00:00:00 2001 From: James Date: Fri, 2 Apr 2021 11:53:03 -0400 Subject: [PATCH] fix: ensures failed conditions send path to form --- src/admin/components/forms/Form/fieldReducer.ts | 1 + src/admin/components/forms/withCondition/index.tsx | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/admin/components/forms/Form/fieldReducer.ts b/src/admin/components/forms/Form/fieldReducer.ts index cd3cbcb124..a5bd4e905f 100644 --- a/src/admin/components/forms/Form/fieldReducer.ts +++ b/src/admin/components/forms/Form/fieldReducer.ts @@ -119,6 +119,7 @@ function fieldReducer(state: Fields, action): Fields { initialValue: action.initialValue, stringify: action.stringify, validate: action.validate, + condition: action.condition, }; return { diff --git a/src/admin/components/forms/withCondition/index.tsx b/src/admin/components/forms/withCondition/index.tsx index fb33b750de..9236b667bd 100644 --- a/src/admin/components/forms/withCondition/index.tsx +++ b/src/admin/components/forms/withCondition/index.tsx @@ -33,18 +33,19 @@ const withCondition =

>(Field: React.Component const { getData, getSiblingData, getField, dispatchFields } = useWatchForm(); const data = getData(); - const field = getField(path); const siblingData = getSiblingData(path); const passesCondition = condition ? condition(data, siblingData) : true; useEffect(() => { if (!passesCondition) { + const field = getField(path); dispatchFields({ ...field, + path, valid: true, }); } - }, [passesCondition, field, dispatchFields]); + }, [passesCondition, getField, dispatchFields, path]); if (passesCondition) { return ;