diff --git a/packages/core/admin/admin/src/components/ConfigurationsProvider/index.js b/packages/core/admin/admin/src/components/ConfigurationsProvider/index.js index a0afb19482..ce94ed79c2 100644 --- a/packages/core/admin/admin/src/components/ConfigurationsProvider/index.js +++ b/packages/core/admin/admin/src/components/ConfigurationsProvider/index.js @@ -1,4 +1,4 @@ -import React, { useMemo, useReducer, useRef } from 'react'; +import React, { useCallback, useMemo, useReducer } from 'react'; import PropTypes from 'prop-types'; import { ConfigurationsContext } from '../../contexts'; import reducer, { initialState } from './reducer'; @@ -12,17 +12,18 @@ const ConfigurationsProvider = ({ }) => { const [{ menuLogo, authLogo }, dispatch] = useReducer(reducer, initialState); - const updateProjectSettings = ({ menuLogo, authLogo }) => { - return dispatch({ - type: 'UPDATE_PROJECT_SETTINGS', - values: { - menuLogo: menuLogo || defaultMenuLogo, - authLogo: authLogo || defaultAuthLogo, - }, - }); - }; - - const updateProjectSettingsRef = useRef(updateProjectSettings); + const updateProjectSettings = useCallback( + ({ menuLogo, authLogo }) => { + return dispatch({ + type: 'UPDATE_PROJECT_SETTINGS', + values: { + menuLogo: menuLogo || defaultMenuLogo, + authLogo: authLogo || defaultAuthLogo, + }, + }); + }, + [defaultAuthLogo, defaultMenuLogo] + ); const configurationValue = useMemo(() => { return { @@ -30,7 +31,7 @@ const ConfigurationsProvider = ({ menu: { custom: menuLogo, default: defaultMenuLogo }, auth: { custom: authLogo, default: defaultAuthLogo }, }, - updateProjectSettings: updateProjectSettingsRef.current, + updateProjectSettings, showReleaseNotification, showTutorials, }; @@ -39,6 +40,7 @@ const ConfigurationsProvider = ({ defaultMenuLogo, authLogo, defaultAuthLogo, + updateProjectSettings, showReleaseNotification, showTutorials, ]); diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/tests/index.test.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/tests/index.test.js index aedcc54ac3..1a556cd65b 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/tests/index.test.js @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen, waitFor } from '@testing-library/react'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import { QueryClientProvider, QueryClient } from 'react-query'; import { IntlProvider } from 'react-intl'; import { ThemeProvider, lightTheme } from '@strapi/design-system'; @@ -8,12 +8,14 @@ import ApplicationInfosPage from '../index'; import { axiosInstance } from '../../../../../core/utils'; import server from './server'; +const updateProjectSettingsSpy = jest.fn(); + jest.mock('@strapi/helper-plugin', () => ({ ...jest.requireActual('@strapi/helper-plugin'), // eslint-disable-next-line CheckPermissions: ({ children }) =>