diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicComponentCard/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicComponentCard/index.js
deleted file mode 100644
index c9c899f332..0000000000
--- a/packages/core/admin/admin/src/content-manager/components/DynamicComponentCard/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import Wrapper from './Wrapper';
-
-const DynamicComponentCard = ({ children, componentUid, friendlyName, icon, onClick }) => {
- return (
- {
- e.preventDefault();
- e.stopPropagation();
-
- onClick(componentUid);
- }}
- >
-
-
-
- {friendlyName}
-
- {children}
-
- );
-};
-
-DynamicComponentCard.defaultProps = {
- children: null,
- friendlyName: '',
- onClick: () => {},
- icon: 'smile',
-};
-
-DynamicComponentCard.propTypes = {
- children: PropTypes.node,
- componentUid: PropTypes.string.isRequired,
- friendlyName: PropTypes.string,
- icon: PropTypes.string,
- onClick: PropTypes.func,
-};
-
-export default DynamicComponentCard;
diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js
index 84d65bc6c2..820591beab 100644
--- a/packages/core/admin/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js
+++ b/packages/core/admin/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js
@@ -74,7 +74,7 @@ function ComponentCard({ componentUid, intlLabel, icon, onClick }) {
}
ComponentCard.defaultProps = {
- icon: 'smile',
+ icon: 'dice-d6',
onClick: () => {},
};
diff --git a/packages/core/content-type-builder/admin/src/components/ComponentCard/index.js b/packages/core/content-type-builder/admin/src/components/ComponentCard/index.js
index b323d7d588..9dd0c84816 100644
--- a/packages/core/content-type-builder/admin/src/components/ComponentCard/index.js
+++ b/packages/core/content-type-builder/admin/src/components/ComponentCard/index.js
@@ -106,7 +106,7 @@ function ComponentCard({ component, dzName, index, isActive, isInDevelopmentMode
paddingRight={4}
>
-
+
{displayName}
diff --git a/packages/core/content-type-builder/admin/src/components/ComponentIconPicker/index.js b/packages/core/content-type-builder/admin/src/components/ComponentIconPicker/index.js
index 76a13a2ff3..ea0f0177b9 100644
--- a/packages/core/content-type-builder/admin/src/components/ComponentIconPicker/index.js
+++ b/packages/core/content-type-builder/admin/src/components/ComponentIconPicker/index.js
@@ -16,23 +16,14 @@ import Cell from './Cell';
const CELL_WIDTH = 44;
-const ComponentIconPicker = ({ error, isCreating, intlLabel, name, onChange, value }) => {
- const { allIcons, allComponentsIconAlreadyTaken } = useDataManager();
+const ComponentIconPicker = ({ error, intlLabel, name, onChange, value }) => {
+ const { allIcons } = useDataManager();
const { formatMessage } = useIntl();
- const [originalIcon] = useState(value);
- const initialIcons = allIcons.filter(ico => {
- if (isCreating) {
- return !allComponentsIconAlreadyTaken.includes(ico);
- }
-
- // Edition
- return !allComponentsIconAlreadyTaken.filter(icon => icon !== originalIcon).includes(ico);
- });
const searchWrapperRef = useRef();
const [showSearch, setShowSearch] = useState(false);
const [search, setSearch] = useState('');
- const [icons, setIcons] = useState(initialIcons);
+ const [icons, setIcons] = useState(allIcons);
const toggleSearch = () => setShowSearch(prev => !prev);
useEffect(() => {
@@ -43,7 +34,7 @@ const ComponentIconPicker = ({ error, isCreating, intlLabel, name, onChange, val
const handleChangeSearch = ({ target: { value } }) => {
setSearch(value);
- setIcons(() => initialIcons.filter(icon => icon.includes(value)));
+ setIcons(() => allIcons.filter(icon => icon.includes(value)));
};
const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';
@@ -91,7 +82,7 @@ const ComponentIconPicker = ({ error, isCreating, intlLabel, name, onChange, val
}}
onClear={() => {
setSearch('');
- setIcons(initialIcons);
+ setIcons(allIcons);
toggleSearch();
}}
value={search}
@@ -175,7 +166,6 @@ ComponentIconPicker.defaultProps = {
ComponentIconPicker.propTypes = {
error: PropTypes.string,
- isCreating: PropTypes.bool.isRequired,
intlLabel: PropTypes.shape({
id: PropTypes.string.isRequired,
defaultMessage: PropTypes.string.isRequired,
diff --git a/packages/core/content-type-builder/admin/src/components/DataManagerProvider/index.js b/packages/core/content-type-builder/admin/src/components/DataManagerProvider/index.js
index 420f465caa..9fa4d706fc 100644
--- a/packages/core/content-type-builder/admin/src/components/DataManagerProvider/index.js
+++ b/packages/core/content-type-builder/admin/src/components/DataManagerProvider/index.js
@@ -541,10 +541,6 @@ const DataManagerProvider = ({
addAttribute,
addCreatedComponentToDynamicZone,
allComponentsCategories: retrieveSpecificInfoFromComponents(components, ['category']),
- allComponentsIconAlreadyTaken: retrieveSpecificInfoFromComponents(components, [
- 'schema',
- 'icon',
- ]),
allIcons,
changeDynamicZoneComponents,
components,
diff --git a/packages/core/content-type-builder/admin/src/components/FormModal/component/createComponentSchema.js b/packages/core/content-type-builder/admin/src/components/FormModal/component/createComponentSchema.js
index 925fc911f7..3cd391cca0 100644
--- a/packages/core/content-type-builder/admin/src/components/FormModal/component/createComponentSchema.js
+++ b/packages/core/content-type-builder/admin/src/components/FormModal/component/createComponentSchema.js
@@ -39,7 +39,7 @@ const createComponentSchema = (usedComponentNames, reservedNames, category) => {
.matches(CATEGORY_NAME_REGEX, errorsTrads.regex)
.required(errorsTrads.required),
- icon: yup.string().required(errorsTrads.required),
+ icon: yup.string(),
};
return yup.object(shape);
diff --git a/packages/core/content-type-builder/server/controllers/validation/component.js b/packages/core/content-type-builder/server/controllers/validation/component.js
index cac78bb78c..1e8701bf75 100644
--- a/packages/core/content-type-builder/server/controllers/validation/component.js
+++ b/packages/core/content-type-builder/server/controllers/validation/component.js
@@ -22,8 +22,7 @@ const componentSchema = createSchema(VALID_TYPES, VALID_RELATIONS, {
icon: yup
.string()
.nullable()
- .test(isValidIcon)
- .required('icon.required'),
+ .test(isValidIcon),
category: yup
.string()
.nullable()
diff --git a/packages/core/content-type-builder/tests/components.test.e2e.js b/packages/core/content-type-builder/tests/components.test.e2e.js
index 0c4ec2af2e..cc785c0c58 100644
--- a/packages/core/content-type-builder/tests/components.test.e2e.js
+++ b/packages/core/content-type-builder/tests/components.test.e2e.js
@@ -47,11 +47,6 @@ describe('Content Type Builder - Components', () => {
name: 'ValidationError',
path: ['component', 'displayName'],
},
- {
- message: 'icon.required',
- name: 'ValidationError',
- path: ['component', 'icon'],
- },
{
message: 'category.required',
name: 'ValidationError',
@@ -59,7 +54,7 @@ describe('Content Type Builder - Components', () => {
},
],
},
- message: '4 errors occurred',
+ message: '3 errors occurred',
name: 'ValidationError',
},
});
@@ -242,11 +237,6 @@ describe('Content Type Builder - Components', () => {
name: 'ValidationError',
path: ['component', 'displayName'],
},
- {
- message: 'icon.required',
- name: 'ValidationError',
- path: ['component', 'icon'],
- },
{
message: 'category.required',
name: 'ValidationError',
@@ -254,7 +244,7 @@ describe('Content Type Builder - Components', () => {
},
],
},
- message: '3 errors occurred',
+ message: '2 errors occurred',
name: 'ValidationError',
},
});