Replace addReferralId in JS by MailPoet Url Factory

[MAILPOET-2182]
This commit is contained in:
Rostislav Wolny
2019-08-14 13:59:52 +02:00
committed by M. Shull
parent 72f5a6e02e
commit 0ca0144219
7 changed files with 34 additions and 19 deletions

View File

@@ -1,6 +1,5 @@
import React from 'react';
import MailPoet from 'mailpoet';
import addReferralId from 'referral_url_decorator.jsx';
class FreePlanAnnouncement extends React.Component {
constructor(props) {
@@ -33,7 +32,7 @@ class FreePlanAnnouncement extends React.Component {
<p>{MailPoet.I18n.t('freePlanDescription')}</p>
<a
className="button-primary"
href={addReferralId('https://www.mailpoet.com/free-plan/')}
href={MailPoet.MailPoetUrlFactory.getFreePlanUrl()}
target="_blank"
rel="noopener noreferrer"
>

View File

@@ -2,7 +2,6 @@ import React from 'react';
import MailPoet from 'mailpoet';
import PropTypes from 'prop-types';
import ReactStringReplace from 'react-string-replace';
import addReferralId from 'referral_url_decorator.jsx';
const resumeMailerSending = () => {
MailPoet.Ajax.post({
@@ -116,7 +115,7 @@ const PHPMailerCheckSettingsNotice = () => (
</p>
<p>
<a
href={addReferralId('https://www.mailpoet.com/free-plan/?utm_source=plugin&utm_campaign=sending-error')}
href={MailPoet.MailPoetUrlFactory.getFreePlanUrl('sending-error')}
target="_blank"
rel="noopener noreferrer"
>

View File

@@ -1,8 +1,10 @@
import FeaturesController from 'features_controller';
import MailPoetUrlFactory from 'mailpoet_url_factory';
// A placeholder for MailPoet object
var MailPoet = {
FeaturesController: FeaturesController(window.mailpoet_feature_flags),
MailPoetUrlFactory: MailPoetUrlFactory(window.mailpoet_referral_id),
};
// Expose MailPoet globally

View File

@@ -0,0 +1,27 @@
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;

View File

@@ -7,7 +7,6 @@ import Marionette from 'backbone.marionette';
import SuperModel from 'backbone.supermodel';
import _ from 'underscore';
import jQuery from 'jquery';
import addReferralId from 'referral_url_decorator.jsx';
var Module = {};
var SidebarView;
@@ -352,7 +351,7 @@ Module.SidebarPreviewView = Marionette.View.extend({
<p>${MailPoet.I18n.t('newsletterPreviewErrorUseSendingService')}</p>
<p>
<a
href=${addReferralId('https://www.mailpoet.com/free-plan/?utm_source=plugin&utm_campaign=sending-error')}
href=${MailPoet.MailPoetUrlFactory.getFreePlanUrl('plugin', 'sending-error')}
target="_blank"
rel="noopener noreferrer"
>

View File

@@ -1,6 +1,5 @@
import React from 'react';
import MailPoet from 'mailpoet';
import addReferralId from 'referral_url_decorator.jsx';
const PremiumBanner = () => {
if (window.mailpoet_premium_active) {
@@ -12,7 +11,7 @@ const PremiumBanner = () => {
ctaButton = (
<a
className="button"
href={addReferralId('https://www.mailpoet.com/free-plan/')}
href={MailPoet.MailPoetUrlFactory.getFreePlanUrl()}
target="_blank"
rel="noopener noreferrer"
>
@@ -23,7 +22,7 @@ const PremiumBanner = () => {
ctaButton = (
<a
className="button"
href={addReferralId(`https://www.mailpoet.com/pricing/?subscribers=${window.mailpoet_subscribers_count}`)}
href={MailPoet.MailPoetUrlFactory.getPricingPageUrl(window.mailpoet_subscribers_count)}
target="_blank"
rel="noopener noreferrer"
>

View File

@@ -1,10 +0,0 @@
const addReferralId = (url) => {
if (!window.mailpoet_referral_id) {
return url;
}
const refUrl = new URL(url);
refUrl.searchParams.set('ref', window.mailpoet_referral_id);
return refUrl.toString();
};
export default addReferralId;