diff --git a/assets/js/src/mailpoet.js b/assets/js/src/mailpoet.js index 6a841a1d1d..bd6b02988c 100644 --- a/assets/js/src/mailpoet.js +++ b/assets/js/src/mailpoet.js @@ -1,10 +1,10 @@ import FeaturesController from 'features_controller'; -import MailPoetUrlFactory from 'mailpoet_url_factory'; +import MailPoetComUrlFactory from 'mailpoet_com_url_factory'; // A placeholder for MailPoet object var MailPoet = { FeaturesController: FeaturesController(window.mailpoet_feature_flags), - MailPoetUrlFactory: MailPoetUrlFactory(window.mailpoet_referral_id), + MailPoetComUrlFactory: MailPoetComUrlFactory(window.mailpoet_referral_id), }; // Expose MailPoet globally diff --git a/assets/js/src/mailpoet_com_url_factory.js b/assets/js/src/mailpoet_com_url_factory.js new file mode 100644 index 0000000000..0f534e50c6 --- /dev/null +++ b/assets/js/src/mailpoet_com_url_factory.js @@ -0,0 +1,27 @@ +const MailPoetComUrlFactory = referralId => { + const baseUrl = 'https://www.mailpoet.com/'; + + const getUrl = (path, params) => { + let finalParams = params; + if (referralId) { + finalParams.ref = referralId; + } + const url = new URL(path, baseUrl); + Object.keys(finalParams).map(key => (url.searchParams.set(key, finalParams[key]))); + return url.toString(); + }; + + return { + getFreePlanUrl: (params) => { + const paramsObject = typeof params === 'object' ? params : {}; + paramsObject.utm_source = 'plugin'; + return getUrl('free-plan', paramsObject); + }, + + getPricingPageUrl: subscribers => ( + getUrl('pricing', { subscribers }) + ), + }; +}; + +export default MailPoetComUrlFactory; diff --git a/assets/js/src/mailpoet_url_factory.js b/assets/js/src/mailpoet_url_factory.js deleted file mode 100644 index 63131ee28e..0000000000 --- a/assets/js/src/mailpoet_url_factory.js +++ /dev/null @@ -1,27 +0,0 @@ -const addReferralId = (url, referralId) => { - if (!referralId) { - return url; - } - const refUrl = new URL(url); - refUrl.searchParams.set('ref', referralId); - return refUrl.toString(); -}; - -const MailPoetUrlFactory = referralId => ({ - getFreePlanUrl: (utmCampaign = null, utmMedium = null) => { - const url = new URL(addReferralId('https://www.mailpoet.com/free-plan/?utm_source=plugin', referralId)); - if (utmCampaign) { - url.searchParams.set('utm_campaign', utmCampaign); - } - if (utmMedium) { - url.searchParams.set('utm_medium', utmMedium); - } - return url.toString(); - }, - - getPricingPageUrl: subscribersCount => ( - addReferralId(`https://www.mailpoet.com/pricing/?subscribers=${subscribersCount}`, referralId) - ), -}); - -export default MailPoetUrlFactory;