diff --git a/packages/strapi-admin/admin/src/app.js b/packages/strapi-admin/admin/src/app.js
index ffd6a5d61e..ff7c1284f7 100644
--- a/packages/strapi-admin/admin/src/app.js
+++ b/packages/strapi-admin/admin/src/app.js
@@ -57,16 +57,20 @@ const { dispatch } = store;
const MOUNT_NODE =
document.getElementById('app') || document.createElement('div');
-Object.keys(plugins).forEach(plugin => {
- const currentPlugin = plugins[plugin];
+Object.keys(plugins).forEach(current => {
+ const registerPlugin = plugin => {
+ return plugin;
+ };
+ const currentPluginFn = plugins[current];
+ const plugin = currentPluginFn({ registerPlugin });
const pluginTradsPrefixed = languages.reduce((acc, lang) => {
- const currentLocale = currentPlugin.trads[lang];
+ const currentLocale = plugin.trads[lang];
if (currentLocale) {
const localeprefixedWithPluginId = Object.keys(currentLocale).reduce(
(acc2, current) => {
- acc2[`${plugins[plugin].id}.${current}`] = currentLocale[current];
+ acc2[`${plugin.id}.${current}`] = currentLocale[current];
return acc2;
},
@@ -81,7 +85,7 @@ Object.keys(plugins).forEach(plugin => {
try {
merge(translationMessages, pluginTradsPrefixed);
- dispatch(pluginLoaded(currentPlugin));
+ dispatch(pluginLoaded(plugin));
} catch (err) {
console.log({ err });
}
diff --git a/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js b/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js
index 833eac0c9a..bf4c02508b 100644
--- a/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js
+++ b/packages/strapi-admin/admin/src/containers/Admin/tests/index.test.js
@@ -92,8 +92,9 @@ describe('', () => {
it('should render the routes', () => {
const renderedComponent = shallow();
const { renderRoute } = renderedComponent.instance();
+ const Compo = () =>
compo
;
- expect(renderRoute()).not.toBeNull();
+ expect(renderRoute({}, Compo)).not.toBeNull();
});
});
diff --git a/packages/strapi-plugin-content-manager/admin/src/index.js b/packages/strapi-plugin-content-manager/admin/src/index.js
index 9b50d22ac1..83550fab79 100644
--- a/packages/strapi-plugin-content-manager/admin/src/index.js
+++ b/packages/strapi-plugin-content-manager/admin/src/index.js
@@ -1,5 +1,3 @@
-import React from 'react';
-
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import App from './containers/Main';
@@ -7,31 +5,29 @@ import Initializer from './containers/Initializer';
import lifecycles from './lifecycles';
import trads from './translations';
-const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
+export default strapi => {
+ const pluginDescription =
+ pluginPkg.strapi.description || pluginPkg.description;
+ const plugin = {
+ blockerComponent: null,
+ blockerComponentProps: {},
+ description: pluginDescription,
+ icon: pluginPkg.strapi.icon,
+ id: pluginId,
+ initializer: Initializer,
+ injectedComponents: [],
+ isReady: false,
+ layout: null,
+ lifecycles,
+ leftMenuLinks: [],
+ leftMenuSections: [],
+ mainComponent: App,
+ name: pluginPkg.strapi.name,
+ preventComponentRendering: false,
+ suffixUrl: () => '/ctm-configurations/models',
+ suffixUrlToReplaceForLeftMenuHighlight: '/models',
+ trads,
+ };
-function Comp(props) {
- return ;
-}
-
-const plugin = {
- blockerComponent: null,
- blockerComponentProps: {},
- description: pluginDescription,
- icon: pluginPkg.strapi.icon,
- id: pluginId,
- initializer: Initializer,
- injectedComponents: [],
- isReady: false,
- layout: null,
- lifecycles,
- leftMenuLinks: [],
- leftMenuSections: [],
- mainComponent: Comp,
- name: pluginPkg.strapi.name,
- preventComponentRendering: false,
- suffixUrl: () => '/ctm-configurations/models',
- suffixUrlToReplaceForLeftMenuHighlight: '/models',
- trads,
+ return strapi.registerPlugin(plugin);
};
-
-export default plugin;
diff --git a/packages/strapi-plugin-content-type-builder/admin/src/index.js b/packages/strapi-plugin-content-type-builder/admin/src/index.js
index ffe0aae0fc..3666527877 100644
--- a/packages/strapi-plugin-content-type-builder/admin/src/index.js
+++ b/packages/strapi-plugin-content-type-builder/admin/src/index.js
@@ -1,4 +1,3 @@
-import React from 'react';
import pluginPkg from '../../package.json';
import App from './containers/App';
import Initializer from './containers/Initializer';
@@ -8,47 +7,45 @@ import lifecycles from './lifecycles';
import trads from './translations';
import pluginId from './pluginId';
-const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
-
-function Comp(props) {
- return ;
-}
-
-const plugin = {
- blockerComponent: null,
- blockerComponentProps: {},
- description: pluginDescription,
- icon: pluginPkg.strapi.icon,
- id: pluginId,
- initializer: Initializer,
- injectedComponents: [
- {
- plugin: 'content-manager.editView',
- area: 'right.links',
- component: Link,
- key: 'content-type-builder.link',
- props: {
- message: {
- id: 'content-manager.containers.Edit.Link.Fields',
+export default strapi => {
+ const pluginDescription =
+ pluginPkg.strapi.description || pluginPkg.description;
+ const plugin = {
+ blockerComponent: null,
+ blockerComponentProps: {},
+ description: pluginDescription,
+ icon: pluginPkg.strapi.icon,
+ id: pluginId,
+ initializer: Initializer,
+ injectedComponents: [
+ {
+ plugin: 'content-manager.editView',
+ area: 'right.links',
+ component: Link,
+ key: 'content-type-builder.link',
+ props: {
+ message: {
+ id: 'content-manager.containers.Edit.Link.Fields',
+ },
+ icon: 'fa-cog',
},
- icon: 'fa-cog',
},
- },
- {
- plugin: 'content-manager.editSettingsView',
- area: 'left.links',
- component: Button,
- key: 'content-type-builder.form',
- },
- ],
- layout: null,
- lifecycles,
- leftMenuLinks: [],
- leftMenuSections: [],
- mainComponent: Comp,
- name: pluginPkg.strapi.name,
- preventComponentRendering: false,
- trads,
-};
+ {
+ plugin: 'content-manager.editSettingsView',
+ area: 'left.links',
+ component: Button,
+ key: 'content-type-builder.form',
+ },
+ ],
+ layout: null,
+ lifecycles,
+ leftMenuLinks: [],
+ leftMenuSections: [],
+ mainComponent: App,
+ name: pluginPkg.strapi.name,
+ preventComponentRendering: false,
+ trads,
+ };
-export default plugin;
+ return strapi.registerPlugin(plugin);
+};
diff --git a/packages/strapi-plugin-documentation/admin/src/index.js b/packages/strapi-plugin-documentation/admin/src/index.js
index 0d18ac5014..5a4b61e848 100644
--- a/packages/strapi-plugin-documentation/admin/src/index.js
+++ b/packages/strapi-plugin-documentation/admin/src/index.js
@@ -1,4 +1,3 @@
-import React from 'react';
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import App from './containers/App';
@@ -6,29 +5,27 @@ import Initializer from './containers/Initializer';
import lifecycles from './lifecycles';
import trads from './translations';
-const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
+export default strapi => {
+ const pluginDescription =
+ pluginPkg.strapi.description || pluginPkg.description;
+ const plugin = {
+ blockerComponent: null,
+ blockerComponentProps: {},
+ description: pluginDescription,
+ icon: pluginPkg.strapi.icon,
+ id: pluginId,
+ initializer: Initializer,
+ injectedComponents: [],
+ isReady: false,
+ layout: null,
+ lifecycles,
+ leftMenuLinks: [],
+ leftMenuSections: [],
+ mainComponent: App,
+ name: pluginPkg.strapi.name,
+ preventComponentRendering: false,
+ trads,
+ };
-function Comp(props) {
- return ;
-}
-
-const plugin = {
- blockerComponent: null,
- blockerComponentProps: {},
- description: pluginDescription,
- icon: pluginPkg.strapi.icon,
- id: pluginId,
- initializer: Initializer,
- injectedComponents: [],
- isReady: false,
- layout: null,
- lifecycles,
- leftMenuLinks: [],
- leftMenuSections: [],
- mainComponent: Comp,
- name: pluginPkg.strapi.name,
- preventComponentRendering: false,
- trads,
+ return strapi.registerPlugin(plugin);
};
-
-export default plugin;
diff --git a/packages/strapi-plugin-email/admin/src/index.js b/packages/strapi-plugin-email/admin/src/index.js
index 24396be235..96dd13bb98 100644
--- a/packages/strapi-plugin-email/admin/src/index.js
+++ b/packages/strapi-plugin-email/admin/src/index.js
@@ -1,4 +1,3 @@
-import React from 'react';
import pluginPkg from '../../package.json';
import pluginId from './pluginId';
import App from './containers/App';
@@ -6,28 +5,27 @@ import Initializer from './containers/Initializer';
import lifecycles from './lifecycles';
import trads from './translations';
-const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
+export default strapi => {
+ const pluginDescription =
+ pluginPkg.strapi.description || pluginPkg.description;
-function Comp(props) {
- return ;
-}
+ const plugin = {
+ blockerComponent: null,
+ blockerComponentProps: {},
+ description: pluginDescription,
+ icon: pluginPkg.strapi.icon,
+ id: pluginId,
+ initializer: Initializer,
+ injectedComponents: [],
+ layout: null,
+ lifecycles,
+ leftMenuLinks: [],
+ leftMenuSections: [],
+ mainComponent: App,
+ name: pluginPkg.strapi.name,
+ preventComponentRendering: false,
+ trads,
+ };
-const plugin = {
- blockerComponent: null,
- blockerComponentProps: {},
- description: pluginDescription,
- icon: pluginPkg.strapi.icon,
- id: pluginId,
- initializer: Initializer,
- injectedComponents: [],
- layout: null,
- lifecycles,
- leftMenuLinks: [],
- leftMenuSections: [],
- mainComponent: Comp,
- name: pluginPkg.strapi.name,
- preventComponentRendering: false,
- trads,
+ return strapi.registerPlugin(plugin);
};
-
-export default plugin;
diff --git a/packages/strapi-plugin-upload/admin/src/index.js b/packages/strapi-plugin-upload/admin/src/index.js
index 2899d87b46..471636b8f7 100644
--- a/packages/strapi-plugin-upload/admin/src/index.js
+++ b/packages/strapi-plugin-upload/admin/src/index.js
@@ -1,34 +1,30 @@
-import React from 'react';
import pluginPkg from '../../package.json';
import App from './containers/App';
import Initializer from './containers/Initializer';
-
import lifecycles from './lifecycles';
import trads from './translations';
import pluginId from './pluginId';
-const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
+export default strapi => {
+ const pluginDescription =
+ pluginPkg.strapi.description || pluginPkg.description;
+ const plugin = {
+ blockerComponent: null,
+ blockerComponentProps: {},
+ description: pluginDescription,
+ icon: pluginPkg.strapi.icon,
+ id: pluginId,
+ initializer: Initializer,
+ injectedComponents: [],
+ layout: null,
+ lifecycles,
+ leftMenuLinks: [],
+ leftMenuSections: [],
+ mainComponent: App,
+ name: pluginPkg.strapi.name,
+ preventComponentRendering: false,
+ trads,
+ };
-function Comp(props) {
- return ;
-}
-
-const plugin = {
- blockerComponent: null,
- blockerComponentProps: {},
- description: pluginDescription,
- icon: pluginPkg.strapi.icon,
- id: pluginId,
- initializer: Initializer,
- injectedComponents: [],
- layout: null,
- lifecycles,
- leftMenuLinks: [],
- leftMenuSections: [],
- mainComponent: Comp,
- name: pluginPkg.strapi.name,
- preventComponentRendering: false,
- trads,
+ return strapi.registerPlugin(plugin);
};
-
-export default plugin;
diff --git a/packages/strapi-plugin-users-permissions/admin/src/index.js b/packages/strapi-plugin-users-permissions/admin/src/index.js
index 61deb38e5f..2f8b608e09 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/index.js
@@ -1,4 +1,3 @@
-import React from 'react';
import pluginPkg from '../../package.json';
import layout from '../../config/layout';
import pluginId from './pluginId';
@@ -7,30 +6,29 @@ import Initializer from './containers/Initializer';
import lifecycles from './lifecycles';
import trads from './translations';
-const pluginDescription = pluginPkg.strapi.description || pluginPkg.description;
+export default strapi => {
+ const pluginDescription =
+ pluginPkg.strapi.description || pluginPkg.description;
-function Comp(props) {
- return ;
-}
+ const plugin = {
+ blockerComponent: null,
+ blockerComponentProps: {},
+ description: pluginDescription,
+ icon: pluginPkg.strapi.icon,
+ id: pluginId,
+ initializer: Initializer,
+ injectedComponents: [],
+ layout,
+ lifecycles,
+ leftMenuLinks: [],
+ leftMenuSections: [],
+ mainComponent: App,
+ name: pluginPkg.strapi.name,
+ preventComponentRendering: false,
+ suffixUrl: () => '/roles',
+ suffixUrlToReplaceForLeftMenuHighlight: '/roles',
+ trads,
+ };
-const plugin = {
- blockerComponent: null,
- blockerComponentProps: {},
- description: pluginDescription,
- icon: pluginPkg.strapi.icon,
- id: pluginId,
- initializer: Initializer,
- injectedComponents: [],
- layout,
- lifecycles,
- leftMenuLinks: [],
- leftMenuSections: [],
- mainComponent: Comp,
- name: pluginPkg.strapi.name,
- preventComponentRendering: false,
- suffixUrl: () => '/roles',
- suffixUrlToReplaceForLeftMenuHighlight: '/roles',
- trads,
+ return strapi.registerPlugin(plugin);
};
-
-export default plugin;