Merge branch 'main' into next

This commit is contained in:
Daniel Lautzenheiser
2023-02-24 09:07:55 -05:00
22 changed files with 172 additions and 59 deletions

View File

@ -21,6 +21,7 @@ import { borders, colors, lengths, transitions } from '@staticcms/core/component
import { transientOptions } from '@staticcms/core/lib';
import useMemoCompare from '@staticcms/core/lib/hooks/useMemoCompare';
import useUUID from '@staticcms/core/lib/hooks/useUUID';
import { isFieldDuplicate, isFieldHidden } from '@staticcms/core/lib/i18n';
import { resolveWidget } from '@staticcms/core/lib/registry';
import { getFieldLabel } from '@staticcms/core/lib/util/field.util';
import { isNotNullish } from '@staticcms/core/lib/util/null.util';
@ -144,10 +145,11 @@ const EditorControl = ({
fieldsErrors,
submitted,
getAsset,
isDisabled,
isFieldDuplicate,
isFieldHidden,
isHidden = false,
isDisabled = false,
isParentDuplicate = false,
isFieldDuplicate: deprecatedIsFieldDuplicate,
isParentHidden = false,
isFieldHidden: deprecatedIsFieldHidden,
locale,
mediaPaths,
openMediaLibrary,
@ -191,6 +193,15 @@ const EditorControl = ({
[collection],
);
const isDuplicate = useMemo(
() => isParentDuplicate || isFieldDuplicate(field, locale, i18n?.defaultLocale),
[field, i18n?.defaultLocale, isParentDuplicate, locale],
);
const isHidden = useMemo(
() => isParentHidden || isFieldHidden(field, locale, i18n?.defaultLocale),
[field, i18n?.defaultLocale, isParentHidden, locale],
);
useEffect(() => {
if ((!dirty && !submitted) || isHidden) {
return;
@ -257,9 +268,11 @@ const EditorControl = ({
fieldsErrors,
submitted,
getAsset: handleGetAsset,
isDisabled: isDisabled ?? false,
isFieldDuplicate,
isFieldHidden,
isDisabled: isDisabled || isDuplicate,
isDuplicate,
isFieldDuplicate: deprecatedIsFieldDuplicate,
isHidden,
isFieldHidden: deprecatedIsFieldHidden,
label: getFieldLabel(field, t),
locale,
mediaPaths,
@ -330,9 +343,16 @@ interface EditorControlOwnProps {
fieldsErrors: FieldsErrors;
submitted: boolean;
isDisabled?: boolean;
isParentDuplicate?: boolean;
/**
* @deprecated use isDuplicate instead
*/
isFieldDuplicate?: (field: Field) => boolean;
isParentHidden?: boolean;
/**
* @deprecated use isHidden instead
*/
isFieldHidden?: (field: Field) => boolean;
isHidden?: boolean;
locale?: string;
parentPath: string;
value: ValueOrNestedValue;

View File

@ -195,8 +195,6 @@ const EditorControlPane = ({
) : null}
{fields.map(field => {
const isTranslatable = isFieldTranslatable(field, locale, i18n?.defaultLocale);
const isDuplicate = isFieldDuplicate(field, locale, i18n?.defaultLocale);
const isHidden = isFieldHidden(field, locale, i18n?.defaultLocale);
const key = i18n ? `field-${locale}_${field.name}` : `field-${field.name}`;
return (
@ -206,8 +204,6 @@ const EditorControlPane = ({
value={getFieldValue(field, entry, isTranslatable, locale)}
fieldsErrors={fieldsErrors}
submitted={submitted}
isDisabled={isDuplicate}
isHidden={isHidden}
isFieldDuplicate={field => isFieldDuplicate(field, locale, i18n?.defaultLocale)}
isFieldHidden={field => isFieldHidden(field, locale, i18n?.defaultLocale)}
locale={locale}