diff --git a/packages/strapi-plugin-content-manager/admin/src/components/Group/index.js b/packages/strapi-plugin-content-manager/admin/src/components/Group/index.js index 4304709430..fe078934fb 100644 --- a/packages/strapi-plugin-content-manager/admin/src/components/Group/index.js +++ b/packages/strapi-plugin-content-manager/admin/src/components/Group/index.js @@ -1,7 +1,7 @@ import React, { useEffect, useReducer, memo } from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; -import { get } from 'lodash'; +import { get, size } from 'lodash'; import pluginId from '../../pluginId'; import { useEditView } from '../../contexts/EditView'; @@ -72,7 +72,7 @@ function Group({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [didCheckErrors]); - const groupValueLength = groupValue.length; + const groupValueLength = size(groupValue); return ( <> diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/formatData.js b/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/formatData.js index 3732e1ce98..693b6e9df9 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/formatData.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/formatData.js @@ -54,7 +54,9 @@ export const cleanData = (retrievedData, ctLayout, groupLayouts) => { }) : value; } else { - cleanedData = recursiveCleanData(value, groupLayouts[group]); + cleanedData = value + ? recursiveCleanData(value, groupLayouts[group]) + : value; } break; default: diff --git a/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/schema.js b/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/schema.js index 462245ec0d..aa514a4f00 100644 --- a/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/schema.js +++ b/packages/strapi-plugin-content-manager/admin/src/containers/EditView/utils/schema.js @@ -62,7 +62,9 @@ const createYupSchema = (model, { groups }) => { ? yup.array().of(groupSchema) : groupSchema; groupSchema = - attribute.required === true ? groupSchema.defined() : groupSchema; + attribute.required === true + ? groupSchema.defined() + : groupSchema.nullable(); acc[current] = groupSchema; } return acc;