@@ -21,6 +21,7 @@ import { borders, colors, lengths, transitions } from '@staticcms/core/component
2121import { transientOptions } from '@staticcms/core/lib' ;
2222import useMemoCompare from '@staticcms/core/lib/hooks/useMemoCompare' ;
2323import useUUID from '@staticcms/core/lib/hooks/useUUID' ;
24+ import { isFieldDuplicate , isFieldHidden } from '@staticcms/core/lib/i18n' ;
2425import { resolveWidget } from '@staticcms/core/lib/registry' ;
2526import { getFieldLabel } from '@staticcms/core/lib/util/field.util' ;
2627import { isNotNullish } from '@staticcms/core/lib/util/null.util' ;
@@ -144,10 +145,11 @@ const EditorControl = ({
144145 fieldsErrors,
145146 submitted,
146147 getAsset,
147- isDisabled,
148- isFieldDuplicate,
149- isFieldHidden,
150- isHidden = false ,
148+ isDisabled = false ,
149+ isParentDuplicate = false ,
150+ isFieldDuplicate : deprecatedIsFieldDuplicate ,
151+ isParentHidden = false ,
152+ isFieldHidden : deprecatedIsFieldHidden ,
151153 locale,
152154 mediaPaths,
153155 openMediaLibrary,
@@ -191,6 +193,15 @@ const EditorControl = ({
191193 [ collection ] ,
192194 ) ;
193195
196+ const isDuplicate = useMemo (
197+ ( ) => isParentDuplicate || isFieldDuplicate ( field , locale , i18n ?. defaultLocale ) ,
198+ [ field , i18n ?. defaultLocale , isParentDuplicate , locale ] ,
199+ ) ;
200+ const isHidden = useMemo (
201+ ( ) => isParentHidden || isFieldHidden ( field , locale , i18n ?. defaultLocale ) ,
202+ [ field , i18n ?. defaultLocale , isParentHidden , locale ] ,
203+ ) ;
204+
194205 useEffect ( ( ) => {
195206 if ( ( ! dirty && ! submitted ) || isHidden ) {
196207 return ;
@@ -257,9 +268,11 @@ const EditorControl = ({
257268 fieldsErrors,
258269 submitted,
259270 getAsset : handleGetAsset ,
260- isDisabled : isDisabled ?? false ,
261- isFieldDuplicate,
262- isFieldHidden,
271+ isDisabled : isDisabled || isDuplicate ,
272+ isDuplicate,
273+ isFieldDuplicate : deprecatedIsFieldDuplicate ,
274+ isHidden,
275+ isFieldHidden : deprecatedIsFieldHidden ,
263276 label : getFieldLabel ( field , t ) ,
264277 locale,
265278 mediaPaths,
@@ -330,9 +343,16 @@ interface EditorControlOwnProps {
330343 fieldsErrors : FieldsErrors ;
331344 submitted : boolean ;
332345 isDisabled ?: boolean ;
346+ isParentDuplicate ?: boolean ;
347+ /**
348+ * @deprecated use isDuplicate instead
349+ */
333350 isFieldDuplicate ?: ( field : Field ) => boolean ;
351+ isParentHidden ?: boolean ;
352+ /**
353+ * @deprecated use isHidden instead
354+ */
334355 isFieldHidden ?: ( field : Field ) => boolean ;
335- isHidden ?: boolean ;
336356 locale ?: string ;
337357 parentPath : string ;
338358 value : ValueOrNestedValue ;
0 commit comments