diff --git a/src/core_modules/capture-core/components/D2Form/FormBuilder/FormBuilder.component.tsx b/src/core_modules/capture-core/components/D2Form/FormBuilder/FormBuilder.component.tsx index 4d5e6b57c3..21d3351171 100644 --- a/src/core_modules/capture-core/components/D2Form/FormBuilder/FormBuilder.component.tsx +++ b/src/core_modules/capture-core/components/D2Form/FormBuilder/FormBuilder.component.tsx @@ -6,6 +6,7 @@ import { makeCancelablePromise } from 'capture-core-utils'; import isDefined from 'd2-utilizr/lib/isDefined'; import isObject from 'd2-utilizr/lib/isObject'; import { FormField, FormPlugin } from './components'; +import { messageStateKeys } from '../../../reducers/descriptions/rulesEffects.reducerDescription'; import type { PostProcessErrorMessage, FieldConfig, @@ -489,11 +490,11 @@ export class FormBuilder extends React.Component { return ruleMessage; } - if (Object.keys(ruleMessage).some((key) => { + if (Object.values(messageStateKeys).some((key) => { const currentMessage = ruleMessage[key]; const prevMessage = prevRuleMessage[key]; - if (Array.isArray(currentMessage)) { - if (!Array.isArray(prevMessage) || prevMessage.length !== currentMessage.length) { + if (Array.isArray(currentMessage) && Array.isArray(prevMessage)) { + if (prevMessage.length !== currentMessage.length) { return true; } return currentMessage.some((value, index) => value !== prevMessage[index]);