diff --git a/packages/core/admin/admin/src/content-manager/pages/App/selectors.js b/packages/core/admin/admin/src/content-manager/pages/App/selectors.js index 6fd9b09a65..8096c8e87a 100644 --- a/packages/core/admin/admin/src/content-manager/pages/App/selectors.js +++ b/packages/core/admin/admin/src/content-manager/pages/App/selectors.js @@ -23,13 +23,13 @@ const makeSelectModelAndComponentSchemas = () => schemas: [...components, ...models], })); -const makeSelectFieldSizes = () => createSelector(selectAppDomain(), (state) => state.fieldSizes); +const selectFieldSizes = createSelector(selectAppDomain(), (state) => state.fieldSizes); export default makeSelectApp; export { makeSelectModelAndComponentSchemas, makeSelectModelLinks, makeSelectModels, - makeSelectFieldSizes, + selectFieldSizes, selectAppDomain, }; diff --git a/packages/core/admin/admin/src/content-manager/pages/App/useContentManagerInitData.js b/packages/core/admin/admin/src/content-manager/pages/App/useContentManagerInitData.js index 48ee7217db..133bb5d749 100644 --- a/packages/core/admin/admin/src/content-manager/pages/App/useContentManagerInitData.js +++ b/packages/core/admin/admin/src/content-manager/pages/App/useContentManagerInitData.js @@ -44,24 +44,27 @@ const useContentManagerInitData = () => { }) ); - const { authorizedContentTypeLinks, authorizedSingleTypeLinks } = await getContentTypeLinks({ + const unmutatedContentTypeLinks = await getContentTypeLinks({ models, userPermissions: allPermissions, toggleNotification, }); - const { ctLinks } = runHookWaterfall(MUTATE_COLLECTION_TYPES_LINKS, { - ctLinks: authorizedContentTypeLinks, - models, - }); - const { stLinks } = runHookWaterfall(MUTATE_SINGLE_TYPES_LINKS, { - stLinks: authorizedSingleTypeLinks, + const { ctLinks: authorizedCollectionTypeLinks } = runHookWaterfall( + MUTATE_COLLECTION_TYPES_LINKS, + { + ctLinks: unmutatedContentTypeLinks.authorizedCollectionTypeLinks, + models, + } + ); + const { stLinks: authorizedSingleTypeLinks } = runHookWaterfall(MUTATE_SINGLE_TYPES_LINKS, { + stLinks: unmutatedContentTypeLinks.authorizedSingleTypeLinks, models, }); const actionToDispatch = setInitData({ - authorizedCollectionTypeLinks: ctLinks, - authorizedSingleTypeLinks: stLinks, + authorizedCollectionTypeLinks, + authorizedSingleTypeLinks, contentTypeSchemas: models, components, fieldSizes, diff --git a/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js b/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js index 69b7d2b23b..3b532666bb 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js @@ -6,7 +6,7 @@ import { useSelector, shallowEqual } from 'react-redux'; import { useIntl } from 'react-intl'; import { useLayoutDnd } from '../../../hooks'; import { createPossibleMainFieldsForModelsAndComponents, getInputProps } from '../utils'; -import { makeSelectModelAndComponentSchemas, makeSelectFieldSizes } from '../../App/selectors'; +import { makeSelectModelAndComponentSchemas, selectFieldSizes } from '../../App/selectors'; import getTrad from '../../../utils/getTrad'; import GenericInput from './GenericInput'; @@ -25,9 +25,8 @@ const ModalForm = ({ onMetaChange, onSizeChange }) => { const { formatMessage } = useIntl(); const { modifiedData, selectedField, attributes, fieldForm } = useLayoutDnd(); const schemasSelector = useMemo(makeSelectModelAndComponentSchemas, []); - const fieldSizesSelector = useMemo(makeSelectFieldSizes, []); const { schemas } = useSelector((state) => schemasSelector(state), shallowEqual); - const fieldSizes = useSelector((state) => fieldSizesSelector(state)); + const fieldSizes = useSelector(selectFieldSizes); const formToDisplay = useMemo(() => { if (!selectedField) { diff --git a/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js b/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js index 6749fc9866..e7a7ccdcae 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js @@ -35,7 +35,7 @@ import ModalForm from './components/FormModal'; import LayoutDndProvider from '../../components/LayoutDndProvider'; import { unformatLayout } from './utils/layout'; import putCMSettingsEV from './utils/api'; -import { makeSelectFieldSizes } from '../App/selectors'; +import { selectFieldSizes } from '../App/selectors'; const EditSettingsView = ({ mainLayout, components, isContentTypeView, slug, updateLayout }) => { const [reducerState, dispatch] = useReducer(reducer, initialState, () => @@ -51,8 +51,7 @@ const EditSettingsView = ({ mainLayout, components, isContentTypeView, slug, upd const { formatMessage } = useIntl(); const modelName = get(mainLayout, ['info', 'displayName'], ''); const attributes = get(modifiedData, ['attributes'], {}); - const fieldSizesSelector = useMemo(makeSelectFieldSizes, []); - const fieldSizes = useSelector((state) => fieldSizesSelector(state)); + const fieldSizes = useSelector(selectFieldSizes); const entryTitleOptions = Object.keys(attributes).filter((attr) => { const type = get(attributes, [attr, 'type'], '');