Generate defalut GA tracking campaign name on load

[MAILPOET-2398]
This commit is contained in:
Jan Jakeš
2019-11-05 12:25:47 +01:00
committed by Jack Kitterhing
parent 6c9e667237
commit e10e2bee56

View File

@@ -13,6 +13,14 @@ import Hooks from 'wp-js-hooks';
import PropTypes from 'prop-types';
import { withRouter } from 'react-router-dom';
import ReactStringReplace from 'react-string-replace';
import slugify from 'slugify';
const generateGaTrackingCampaignName = (id, subject) => {
const name = slugify(subject, { lower: true })
.replace(/[^a-z0-9]+/g, '-')
.replace(/-$/, '');
return `${name || 'newsletter'}_${id}`;
};
class NewsletterSend extends React.Component {
static displayName = 'NewsletterSend';
@@ -127,6 +135,10 @@ class NewsletterSend extends React.Component {
},
}).done((response) => {
const thumbnailPromise = response.data.status === 'draft' ? this.getThumbnailPromise(response.meta.preview_url) : null;
const item = response.data;
if (!item.ga_campaign) {
item.ga_campaign = generateGaTrackingCampaignName(item.id, item.subject);
}
this.setState({
item: response.data,
fields: this.getFieldsByNewsletter(response.data),