mirror of
https://github.com/strapi/strapi.git
synced 2025-12-12 23:44:08 +00:00
Remove StrapiProvider in favor of StrapiAppProvider
Signed-off-by: soupette <cyril.lpz@gmail.com>
This commit is contained in:
parent
be9cc3731c
commit
9cdbfb024a
@ -3,7 +3,7 @@ import { Provider } from 'react-redux';
|
||||
import { BrowserRouter } from 'react-router-dom';
|
||||
import { QueryClientProvider, QueryClient } from 'react-query';
|
||||
import { ThemeProvider } from 'styled-components';
|
||||
import { LibraryProvider, StrapiProvider } from '@strapi/helper-plugin';
|
||||
import { LibraryProvider, StrapiAppProvider } from '@strapi/helper-plugin';
|
||||
import configureStore from './core/store/configureStore';
|
||||
import { Plugin } from './core/apis';
|
||||
import basename from './utils/basename';
|
||||
@ -149,9 +149,8 @@ class StrapiApp {
|
||||
<GlobalStyle />
|
||||
<Fonts />
|
||||
<Provider store={store}>
|
||||
<LibraryProvider components={components} fields={fields}>
|
||||
{/* TODO remove this */}
|
||||
<StrapiProvider strapi={this}>
|
||||
<StrapiAppProvider getPlugin={this.getPlugin} plugins={this.plugins}>
|
||||
<LibraryProvider components={components} fields={fields}>
|
||||
<LanguageProvider messages={this.translations}>
|
||||
<>
|
||||
<AutoReloadOverlayBlocker />
|
||||
@ -162,8 +161,8 @@ class StrapiApp {
|
||||
</BrowserRouter>
|
||||
</>
|
||||
</LanguageProvider>
|
||||
</StrapiProvider>
|
||||
</LibraryProvider>
|
||||
</LibraryProvider>
|
||||
</StrapiAppProvider>
|
||||
</Provider>
|
||||
</ThemeProvider>
|
||||
</QueryClientProvider>
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
import React, { useReducer, useRef } from 'react';
|
||||
import { LoadingIndicatorPage, useStrapi } from '@strapi/helper-plugin';
|
||||
import { LoadingIndicatorPage, useStrapiApp } from '@strapi/helper-plugin';
|
||||
import Admin from '../../pages/Admin';
|
||||
import init from './init';
|
||||
import reducer, { initialState } from './reducer';
|
||||
|
||||
const PluginsInitializer = () => {
|
||||
// TODO rename strapi to avoid mismatch with the window.strapi
|
||||
const { strapi: app } = useStrapi();
|
||||
const [{ plugins }, dispatch] = useReducer(reducer, initialState, () => init(app.plugins));
|
||||
const { plugins: appPlugins } = useStrapiApp();
|
||||
|
||||
const [{ plugins }, dispatch] = useReducer(reducer, initialState, () => init(appPlugins));
|
||||
const setPlugin = useRef(pluginId => {
|
||||
dispatch({ type: 'SET_PLUGIN_READY', pluginId });
|
||||
});
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import React from 'react';
|
||||
import { StrapiProvider } from '@strapi/helper-plugin';
|
||||
import { StrapiAppProvider } from '@strapi/helper-plugin';
|
||||
import { render } from '@testing-library/react';
|
||||
import PluginsInitializer from '../index';
|
||||
|
||||
@ -7,11 +7,13 @@ jest.mock('../../../pages/Admin', () => () => <div>ADMIN</div>);
|
||||
|
||||
describe('ADMIN | COMPONENTS | PluginsInitializer', () => {
|
||||
it('should not crash', () => {
|
||||
const getPlugin = jest.fn();
|
||||
|
||||
expect(
|
||||
render(
|
||||
<StrapiProvider strapi={{ plugins: {} }}>
|
||||
<StrapiAppProvider plugins={{}} getPlugin={getPlugin}>
|
||||
<PluginsInitializer />
|
||||
</StrapiProvider>
|
||||
</StrapiAppProvider>
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
@ -10,7 +10,12 @@
|
||||
// IF THE DOC IS NOT UPDATED THE PULL REQUEST WILL NOT BE MERGED
|
||||
|
||||
import React, { memo, useMemo, useState } from 'react';
|
||||
import { BackHeader, LeftMenuList, LoadingIndicatorPage, useStrapi } from '@strapi/helper-plugin';
|
||||
import {
|
||||
BackHeader,
|
||||
LeftMenuList,
|
||||
LoadingIndicatorPage,
|
||||
useStrapiApp,
|
||||
} from '@strapi/helper-plugin';
|
||||
import { Switch, Redirect, Route, useParams, useHistory } from 'react-router-dom';
|
||||
import { useIntl } from 'react-intl';
|
||||
import HeaderSearch from '../../components/HeaderSearch';
|
||||
@ -37,10 +42,7 @@ import {
|
||||
function SettingsPage() {
|
||||
const { settingId } = useParams();
|
||||
const { goBack } = useHistory();
|
||||
// TODO
|
||||
const {
|
||||
strapi: { plugins },
|
||||
} = useStrapi();
|
||||
const { plugins } = useStrapiApp();
|
||||
const [headerSearchState, setShowHeaderSearchState] = useState({ show: false, label: '' });
|
||||
const { isLoading, menu } = useSettingsMenu();
|
||||
const { formatMessage } = useIntl();
|
||||
|
||||
@ -6,7 +6,7 @@ import {
|
||||
LoadingIndicatorPage,
|
||||
useGlobalContext,
|
||||
PopUpWarning,
|
||||
useStrapi,
|
||||
useStrapiApp,
|
||||
useUser,
|
||||
} from '@strapi/helper-plugin';
|
||||
import { useHistory, useLocation, useRouteMatch, Redirect } from 'react-router-dom';
|
||||
@ -63,10 +63,8 @@ const DataManagerProvider = ({
|
||||
reservedNames,
|
||||
}) => {
|
||||
const dispatch = useDispatch();
|
||||
// TODO
|
||||
const {
|
||||
strapi: { getPlugin },
|
||||
} = useStrapi();
|
||||
|
||||
const { getPlugin } = useStrapiApp();
|
||||
|
||||
const { apis } = getPlugin(pluginId);
|
||||
const [infoModals, toggleInfoModal] = useState({ cancel: false });
|
||||
|
||||
@ -10,7 +10,7 @@ import {
|
||||
getYupInnerErrors,
|
||||
useGlobalContext,
|
||||
useQuery,
|
||||
useStrapi,
|
||||
useStrapiApp,
|
||||
InputsIndex,
|
||||
} from '@strapi/helper-plugin';
|
||||
import { Button, Text, Padded } from '@buffetjs/core';
|
||||
@ -72,9 +72,7 @@ const FormModal = () => {
|
||||
const { push } = useHistory();
|
||||
const { search } = useLocation();
|
||||
const { emitEvent, formatMessage } = useGlobalContext();
|
||||
const {
|
||||
strapi: { getPlugin },
|
||||
} = useStrapi();
|
||||
const { getPlugin } = useStrapiApp();
|
||||
const ctbPlugin = getPlugin(pluginId);
|
||||
const ctbFormsAPI = ctbPlugin.apis.forms;
|
||||
const inputsFromPlugins = ctbFormsAPI.components.inputs;
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
import useStrapi from '../../hooks/useStrapi';
|
||||
import useStrapiApp from '../../hooks/useStrapiApp';
|
||||
|
||||
const useInjectionZone = area => {
|
||||
const { strapi: globalStrapi } = useStrapi();
|
||||
const { getPlugin } = useStrapiApp();
|
||||
|
||||
const [pluginName, page, position] = area.split('.');
|
||||
const plugin = globalStrapi.getPlugin(pluginName);
|
||||
const plugin = getPlugin(pluginName);
|
||||
|
||||
if (!plugin) {
|
||||
return null;
|
||||
|
||||
@ -0,0 +1,11 @@
|
||||
/**
|
||||
*
|
||||
* StrapiAppContext
|
||||
*
|
||||
*/
|
||||
|
||||
import { createContext } from 'react';
|
||||
|
||||
const StrapiAppContext = createContext();
|
||||
|
||||
export default StrapiAppContext;
|
||||
@ -1,11 +0,0 @@
|
||||
/**
|
||||
*
|
||||
* StrapiContext
|
||||
*
|
||||
*/
|
||||
|
||||
import { createContext } from 'react';
|
||||
|
||||
const StrapiContext = createContext();
|
||||
|
||||
export default StrapiContext;
|
||||
@ -1,12 +0,0 @@
|
||||
/**
|
||||
*
|
||||
* useStrapi
|
||||
*
|
||||
*/
|
||||
|
||||
import { useContext } from 'react';
|
||||
import StrapiContext from '../../contexts/StrapiContext';
|
||||
|
||||
const useStrapi = () => useContext(StrapiContext);
|
||||
|
||||
export default useStrapi;
|
||||
@ -0,0 +1,12 @@
|
||||
/**
|
||||
*
|
||||
* useStrapiApp
|
||||
*
|
||||
*/
|
||||
|
||||
import { useContext } from 'react';
|
||||
import StrapiAppContext from '../../contexts/StrapiAppContext';
|
||||
|
||||
const useStrapiApp = () => useContext(StrapiAppContext);
|
||||
|
||||
export default useStrapiApp;
|
||||
@ -116,14 +116,14 @@ export { default as ContentManagerEditViewDataManagerContext } from './contexts/
|
||||
export { default as useContentManagerEditViewDataManager } from './hooks/useContentManagerEditViewDataManager';
|
||||
export { default as useQuery } from './hooks/useQuery';
|
||||
export { default as useLibrary } from './hooks/useLibrary';
|
||||
export { default as useStrapi } from './hooks/useStrapi';
|
||||
export { default as useStrapiApp } from './hooks/useStrapiApp';
|
||||
export { default as useUser } from './hooks/useUser';
|
||||
export { default as useUserPermissions } from './hooks/useUserPermissions';
|
||||
export { default as useQueryParams } from './hooks/useQueryParams';
|
||||
|
||||
// Providers
|
||||
export { default as StrapiProvider } from './providers/StrapiProvider';
|
||||
export { default as LibraryProvider } from './providers/LibraryProvider';
|
||||
export { default as StrapiAppProvider } from './providers/StrapiAppProvider';
|
||||
|
||||
// Utils
|
||||
export { default as auth } from './utils/auth';
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
/**
|
||||
*
|
||||
* StrapiAppProvider
|
||||
*
|
||||
*/
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import StrapiAppContext from '../../contexts/StrapiAppContext';
|
||||
|
||||
const StrapiAppProvider = ({ children, getPlugin, plugins }) => {
|
||||
return (
|
||||
<StrapiAppContext.Provider value={{ getPlugin, plugins }}>{children}</StrapiAppContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
StrapiAppProvider.propTypes = {
|
||||
children: PropTypes.node.isRequired,
|
||||
getPlugin: PropTypes.func.isRequired,
|
||||
plugins: PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
export default StrapiAppProvider;
|
||||
@ -1,20 +0,0 @@
|
||||
/**
|
||||
*
|
||||
* StrapiProvider
|
||||
*
|
||||
*/
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import StrapiContext from '../../contexts/StrapiContext';
|
||||
|
||||
const StrapiProvider = ({ children, strapi }) => {
|
||||
return <StrapiContext.Provider value={{ strapi }}>{children}</StrapiContext.Provider>;
|
||||
};
|
||||
|
||||
StrapiProvider.defaultProps = {};
|
||||
StrapiProvider.propTypes = {
|
||||
children: PropTypes.node.isRequired,
|
||||
strapi: PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
export default StrapiProvider;
|
||||
Loading…
x
Reference in New Issue
Block a user