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;