Fix eslint rules

[MAILPOET-1348]
This commit is contained in:
Pavel Dohnal
2018-04-18 14:11:05 +01:00
parent b2473c9b65
commit b073f95008
3 changed files with 141 additions and 146 deletions

View File

@@ -2,6 +2,7 @@ import React from 'react';
import AutomaticEmailsBreadcrumb from 'newsletters/types/automatic_emails/breadcrumb.jsx'; import AutomaticEmailsBreadcrumb from 'newsletters/types/automatic_emails/breadcrumb.jsx';
import MailPoet from 'mailpoet'; import MailPoet from 'mailpoet';
import _ from 'underscore'; import _ from 'underscore';
import PropTypes from 'prop-types';
class AutomaticEmailEventsList extends React.Component { class AutomaticEmailEventsList extends React.Component {
constructor(props) { constructor(props) {
@@ -21,7 +22,8 @@ class AutomaticEmailEventsList extends React.Component {
if (this.email.premium) { if (this.email.premium) {
action = ( action = (
<a href="?page=mailpoet-premium" <a
href="?page=mailpoet-premium"
target="_blank" target="_blank"
> >
{MailPoet.I18n.t('premiumFeatureLink')} {MailPoet.I18n.t('premiumFeatureLink')}
@@ -31,7 +33,8 @@ class AutomaticEmailEventsList extends React.Component {
const disabled = event.soon; const disabled = event.soon;
action = ( action = (
<a className="button button-primary" <a
className="button button-primary"
disabled={disabled} disabled={disabled}
onClick={!disabled ? this.eventsConfigurator.bind(null, event.slug) : null} onClick={!disabled ? this.eventsConfigurator.bind(null, event.slug) : null}
> >
@@ -91,4 +94,18 @@ class AutomaticEmailEventsList extends React.Component {
} }
} }
AutomaticEmailEventsList.propTypes = {
route: PropTypes.shape({
data: PropTypes.shape({
email: PropTypes.string.isRequired,
}).isRequired,
}).isRequired,
router: PropTypes.shape({
push: PropTypes.func.isRequired,
}).isRequired,
};
module.exports = AutomaticEmailEventsList; module.exports = AutomaticEmailEventsList;

View File

@@ -1,96 +1,84 @@
define( import React from 'react';
[ import MailPoet from 'mailpoet';
'underscore', import Breadcrumb from 'newsletters/breadcrumb.jsx';
'react', import _ from 'underscore';
'react-router', import Scheduling from 'newsletters/types/notification/scheduling.jsx';
'mailpoet',
'newsletters/types/notification/scheduling.jsx', const field = {
'newsletters/breadcrumb.jsx', name: 'options',
], type: 'reactComponent',
( component: Scheduling,
_, };
React,
Router, const NewsletterNotification = React.createClass({
MailPoet, contextTypes: {
Scheduling, router: React.PropTypes.object.isRequired,
Breadcrumb },
) => { getInitialState: function getInitialState() {
const field = { return {
name: 'options', options: {
type: 'reactComponent', intervalType: 'daily',
component: Scheduling, timeOfDay: 0,
weekDay: 1,
monthDay: 0,
nthWeekDay: 1,
},
}; };
},
const NewsletterNotification = React.createClass({ handleValueChange: function handleValueChange(event) {
contextTypes: { const state = this.state;
router: React.PropTypes.object.isRequired, state[event.target.name] = event.target.value;
}, this.setState(state);
getInitialState: function getInitialState() { },
return { handleNext: function handleNext() {
options: { MailPoet.Ajax.post({
intervalType: 'daily', api_version: window.mailpoet_api_version,
timeOfDay: 0, endpoint: 'newsletters',
weekDay: 1, action: 'create',
monthDay: 0, data: _.extend({}, this.state, {
nthWeekDay: 1, type: 'notification',
}, subject: MailPoet.I18n.t('draftNewsletterTitle'),
}; }),
}, }).done((response) => {
handleValueChange: function handleValueChange(event) { this.showTemplateSelection(response.data.id);
const state = this.state; }).fail((response) => {
state[event.target.name] = event.target.value; if (response.errors.length > 0) {
this.setState(state); MailPoet.Notice.error(
}, response.errors.map(error => error.message),
handleNext: function handleNext() { { scroll: true }
MailPoet.Ajax.post({
api_version: window.mailpoet_api_version,
endpoint: 'newsletters',
action: 'create',
data: _.extend({}, this.state, {
type: 'notification',
subject: MailPoet.I18n.t('draftNewsletterTitle'),
}),
}).done((response) => {
this.showTemplateSelection(response.data.id);
}).fail((response) => {
if (response.errors.length > 0) {
MailPoet.Notice.error(
response.errors.map(error => error.message),
{ scroll: true }
);
}
});
},
showTemplateSelection: function showTemplateSelection(newsletterId) {
this.context.router.push(`/template/${newsletterId}`);
},
render: function render() {
return (
<div>
<h1>{MailPoet.I18n.t('postNotificationNewsletterTypeTitle')}</h1>
<Breadcrumb step="type" />
<h3>{MailPoet.I18n.t('selectFrequency')}</h3>
<Scheduling
item={this.state}
field={field}
onValueChange={this.handleValueChange}
/>
<p className="submit">
<input
className="button button-primary"
type="button"
onClick={this.handleNext}
value={MailPoet.I18n.t('next')}
/>
</p>
</div>
); );
}, }
}); });
},
showTemplateSelection: function showTemplateSelection(newsletterId) {
this.context.router.push(`/template/${newsletterId}`);
},
render: function render() {
return (
<div>
<h1>{MailPoet.I18n.t('postNotificationNewsletterTypeTitle')}</h1>
<Breadcrumb step="type" />
<h3>{MailPoet.I18n.t('selectFrequency')}</h3>
<Scheduling
item={this.state}
field={field}
onValueChange={this.handleValueChange}
/>
<p className="submit">
<input
className="button button-primary"
type="button"
onClick={this.handleNext}
value={MailPoet.I18n.t('next')}
/>
</p>
</div>
);
},
});
module.exports = NewsletterNotification;
return NewsletterNotification;
}
);

View File

@@ -1,53 +1,43 @@
define( import React from 'react';
[ import MailPoet from 'mailpoet';
'react', import Breadcrumb from 'newsletters/breadcrumb.jsx';
'react-router',
'mailpoet', const NewsletterStandard = React.createClass({
'newsletters/breadcrumb.jsx', contextTypes: {
], router: React.PropTypes.object.isRequired,
( },
React, showTemplateSelection: function showTemplateSelection(newsletterId) {
Router, this.context.router.push(`/template/${newsletterId}`);
MailPoet, },
Breadcrumb componentDidMount: function componentDidMount() {
) => { // No options for this type, create a newsletter upon mounting
const NewsletterStandard = React.createClass({ MailPoet.Ajax.post({
contextTypes: { api_version: window.mailpoet_api_version,
router: React.PropTypes.object.isRequired, endpoint: 'newsletters',
}, action: 'create',
showTemplateSelection: function showTemplateSelection(newsletterId) { data: {
this.context.router.push(`/template/${newsletterId}`); type: 'standard',
}, },
componentDidMount: function componentDidMount() { }).done((response) => {
// No options for this type, create a newsletter upon mounting this.showTemplateSelection(response.data.id);
MailPoet.Ajax.post({ }).fail((response) => {
api_version: window.mailpoet_api_version, if (response.errors.length > 0) {
endpoint: 'newsletters', MailPoet.Notice.error(
action: 'create', response.errors.map(error => error.message),
data: { { scroll: true }
type: 'standard', );
}, }
}).done((response) => { });
this.showTemplateSelection(response.data.id); },
}).fail((response) => { render: function render() {
if (response.errors.length > 0) { return (
MailPoet.Notice.error( <div>
response.errors.map(error => error.message), <h1>{MailPoet.I18n.t('regularNewsletterTypeTitle')}</h1>
{ scroll: true } <Breadcrumb step="type" />
); </div>
} );
}); },
}, });
render: function render() {
return ( module.exports = NewsletterStandard;
<div>
<h1>{MailPoet.I18n.t('regularNewsletterTypeTitle')}</h1>
<Breadcrumb step="type" />
</div>
);
},
});
return NewsletterStandard;
}
);