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', }, });