From 0cd5473675b8c18ba2e89386418cd0874a27f47b Mon Sep 17 00:00:00 2001 From: soupette Date: Tue, 2 Apr 2019 13:30:35 +0200 Subject: [PATCH] Update generators to the new architecture --- .../admin/src/containers/Initializer/index.js | 27 +++++++++++++++++++ .../Initializer/tests/index.test.js | 21 +++++++++++++++ .../files/admin/src/initializer.js | 0 .../files/admin/src/lifecycles.js | 23 ++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 packages/strapi-generate-plugin/files/admin/src/containers/Initializer/index.js create mode 100644 packages/strapi-generate-plugin/files/admin/src/containers/Initializer/tests/index.test.js create mode 100644 packages/strapi-generate-plugin/files/admin/src/initializer.js create mode 100644 packages/strapi-generate-plugin/files/admin/src/lifecycles.js diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/Initializer/index.js b/packages/strapi-generate-plugin/files/admin/src/containers/Initializer/index.js new file mode 100644 index 0000000000..6e8f49cdca --- /dev/null +++ b/packages/strapi-generate-plugin/files/admin/src/containers/Initializer/index.js @@ -0,0 +1,27 @@ +/** + * + * Initializer + * + */ + +import React from 'react'; +import PropTypes from 'prop-types'; +import pluginId from '../../pluginId'; + +class Initializer extends React.PureComponent { + // eslint-disable-line react/prefer-stateless-function + componentDidMount() { + // Emit the event 'pluginReady' + this.props.updatePlugin(pluginId, 'isReady', true); + } + + render() { + return null; + } +} + +Initializer.propTypes = { + updatePlugin: PropTypes.func.isRequired, +}; + +export default Initializer; diff --git a/packages/strapi-generate-plugin/files/admin/src/containers/Initializer/tests/index.test.js b/packages/strapi-generate-plugin/files/admin/src/containers/Initializer/tests/index.test.js new file mode 100644 index 0000000000..56bd4f938e --- /dev/null +++ b/packages/strapi-generate-plugin/files/admin/src/containers/Initializer/tests/index.test.js @@ -0,0 +1,21 @@ +import React from 'react'; +import { mount, shallow } from 'enzyme'; + +import Initializer from '../index'; + +describe('', () => { + it('Should not crash', () => { + const updatePlugin = jest.fn(); + const renderedComponent = shallow(); + + expect(renderedComponent.children()).toHaveLength(0); + }); + + it('should call the updatePlugin props when mounted', () => { + const updatePlugin = jest.fn(); + + const wrapper = mount(); + + expect(wrapper.prop('updatePlugin')).toHaveBeenCalledWith('upload', 'isReady', true); + }); +}); diff --git a/packages/strapi-generate-plugin/files/admin/src/initializer.js b/packages/strapi-generate-plugin/files/admin/src/initializer.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/strapi-generate-plugin/files/admin/src/lifecycles.js b/packages/strapi-generate-plugin/files/admin/src/lifecycles.js new file mode 100644 index 0000000000..06682e7244 --- /dev/null +++ b/packages/strapi-generate-plugin/files/admin/src/lifecycles.js @@ -0,0 +1,23 @@ +/* + * + * SET THE HOOKS TO ENABLE THE MAGIC OF STRAPI. + * ------------------------------------------- + * + * Secure, customise and enhance your project by setting + * the hooks via this file. + * + */ + +module.exports = function lifecycles() { + // Set hooks for the AdminPage container. + // Note: we don't need to specify the first argument because we already know what "willSecure" refers to. + this.setHooks({ + didGetSecuredData: () => console.log('do something'), + }); + + // Set hooks for the App container of the Content Manager. + // Note: we have to specify the first argument to select a specific container which is located in a plugin, or not. + // this.setHooks('content-manager.App', { + // willSomething: () => { console.log("Do Something"); } + // }); +};