From f2bf2399fa34c49b3b68be55257908b0f8733962 Mon Sep 17 00:00:00 2001 From: Dan Ribbens Date: Wed, 8 Jun 2022 11:37:31 -0400 Subject: [PATCH] fix: custom fields values resetting in ui (#626) --- .../components/utilities/RenderCustomComponent/index.tsx | 4 +--- src/fields/config/sanitize.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/admin/components/utilities/RenderCustomComponent/index.tsx b/src/admin/components/utilities/RenderCustomComponent/index.tsx index 8985a193ac..efa60f698c 100644 --- a/src/admin/components/utilities/RenderCustomComponent/index.tsx +++ b/src/admin/components/utilities/RenderCustomComponent/index.tsx @@ -1,14 +1,12 @@ import React from 'react'; import { Props } from './types'; -import withCondition from '../../forms/withCondition'; const RenderCustomComponent: React.FC = (props) => { const { CustomComponent, DefaultComponent, componentProps } = props; if (CustomComponent) { - const ConditionalCustomComponent = withCondition(CustomComponent); return ( - + ); } diff --git a/src/fields/config/sanitize.ts b/src/fields/config/sanitize.ts index c74d2b1b01..a39fb64eac 100644 --- a/src/fields/config/sanitize.ts +++ b/src/fields/config/sanitize.ts @@ -4,6 +4,7 @@ import { baseBlockFields } from '../baseFields/baseBlockFields'; import validations from '../validations'; import { baseIDField } from '../baseFields/baseIDField'; import { Field, fieldAffectsData } from './types'; +import withCondition from '../../admin/components/forms/withCondition'; const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[] => { if (!fields) return []; @@ -57,7 +58,13 @@ const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[] if (!field.access) field.access = {}; } - if (!field.admin) field.admin = {}; + if (field.admin) { + if (field.admin.condition && field.admin.components?.Field) { + field.admin.components.Field = withCondition(field.admin.components?.Field); + } + } else { + field.admin = {}; + } if ('fields' in field && field.fields) field.fields = sanitizeFields(field.fields, validRelationships);