diff --git a/assets/js/src/features/context.jsx b/assets/js/src/features/context.jsx new file mode 100644 index 0000000000..266345f567 --- /dev/null +++ b/assets/js/src/features/context.jsx @@ -0,0 +1,4 @@ +import React from 'react'; +import MailPoet from 'mailpoet'; + +export default React.createContext(MailPoet.FeaturesController); diff --git a/assets/js/src/features_controller.js b/assets/js/src/features_controller.js new file mode 100644 index 0000000000..dd62a8600d --- /dev/null +++ b/assets/js/src/features_controller.js @@ -0,0 +1,7 @@ +const FeaturesController = (config) => ({ + isSupported: (feature) => { + return config[feature] || false; + }, +}); + +export default FeaturesController; diff --git a/assets/js/src/mailpoet.js b/assets/js/src/mailpoet.js index 76a8ea6447..17d9fc36fc 100644 --- a/assets/js/src/mailpoet.js +++ b/assets/js/src/mailpoet.js @@ -1,5 +1,9 @@ +import FeaturesController from 'features_controller'; + // A placeholder for MailPoet object -var MailPoet = {}; +var MailPoet = { + FeaturesController: FeaturesController(window.mailpoet_feature_flags), +}; // Expose MailPoet globally window.MailPoet = MailPoet;