From 9bd2011f61783bfca77e54dafb8b8e9753dfb75a Mon Sep 17 00:00:00 2001 From: ronronscelestes <71838159+ronronscelestes@users.noreply.github.com> Date: Thu, 25 Nov 2021 13:29:32 +0100 Subject: [PATCH] [QA] Form validation when D&P for DZ and Rep component (#11673) * removed not isDraft condition in yup schema for DZ and rep component * feedback fix * removed required + min for dz in restaurant * removed required false in restaurant schema.. * pair prog errors refacto dz + fixed rep components --- .../utils/schema.js | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/core/admin/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js b/packages/core/admin/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js index 32d707757c..613c492ce0 100644 --- a/packages/core/admin/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +++ b/packages/core/admin/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js @@ -100,10 +100,11 @@ const createYupSchema = ( if (attribute.repeatable === true) { const { min, max, required } = attribute; + let componentSchema = yup.lazy(value => { let baseSchema = yup.array().of(componentFieldSchema); - if (min && !options.isDraft) { + if (min) { if (required) { baseSchema = baseSchema.min(min, errorsTrads.min); } else if (required !== true && isEmpty(value)) { @@ -111,6 +112,8 @@ const createYupSchema = ( } else { baseSchema = baseSchema.min(min, errorsTrads.min); } + } else if (required && !options.isDraft) { + baseSchema = baseSchema.min(1, errorsTrads.required); } if (max) { @@ -152,20 +155,8 @@ const createYupSchema = ( const { max, min } = attribute; - if (attribute.required && !options.isDraft) { - dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, value => { - if (options.isCreatingEntry) { - return value !== null || value !== undefined; - } - - if (value === undefined) { - return true; - } - - return value !== null; - }); - - if (min) { + if (min) { + if (attribute.required) { dynamicZoneSchema = dynamicZoneSchema .test('min', errorsTrads.min, value => { if (options.isCreatingEntry) { @@ -189,12 +180,21 @@ const createYupSchema = ( return value !== null; }); - } - } else { - // eslint-disable-next-line no-lonely-if - if (min) { + } else { dynamicZoneSchema = dynamicZoneSchema.notEmptyMin(min); } + } else if (attribute.required && !options.isDraft) { + dynamicZoneSchema = dynamicZoneSchema.test('required', errorsTrads.required, value => { + if (options.isCreatingEntry) { + return value !== null || value !== undefined; + } + + if (value === undefined) { + return true; + } + + return value !== null; + }); } if (max) {