ESLint rules

This commit is contained in:
Amine Ben hammou
2018-04-18 18:34:12 +02:00
parent 8890dac207
commit 1b98604c90
3 changed files with 143 additions and 131 deletions

View File

@@ -1,102 +1,95 @@
define([
'react',
'jquery',
'mailpoet',
],
(
React,
jQuery,
MailPoet
) => {
const ListingFilters = React.createClass({
handleFilterAction: function handleFilterAction() {
const filters = {};
this.getAvailableFilters().forEach((filter, i) => {
filters[this[`filter-${i}`].name] = this[`filter-${i}`].value;
});
if (this.props.onBeforeSelectFilter) {
this.props.onBeforeSelectFilter(filters);
}
return this.props.onSelectFilter(filters);
},
handleEmptyTrash: function handleEmptyTrash() {
return this.props.onEmptyTrash();
},
getAvailableFilters: function getAvailableFilters() {
const filters = this.props.filters;
return Object.keys(filters).filter(filter => !(
filters[filter].length === 0
|| (
filters[filter].length === 1
&& !filters[filter][0].value
)
));
},
componentDidUpdate: function componentDidUpdate() {
const selectedFilters = this.props.filter;
this.getAvailableFilters().forEach(
(filter, i) => {
if (selectedFilters[filter] !== undefined && selectedFilters[filter]) {
jQuery(this[`filter-${i}`])
.val(selectedFilters[filter])
.trigger('change');
}
import React from 'react';
import jQuery from 'jquery';
import MailPoet from 'mailpoet';
const ListingFilters = React.createClass({
handleFilterAction: function handleFilterAction() {
const filters = {};
this.getAvailableFilters().forEach((filter, i) => {
filters[this[`filter-${i}`].name] = this[`filter-${i}`].value;
});
if (this.props.onBeforeSelectFilter) {
this.props.onBeforeSelectFilter(filters);
}
return this.props.onSelectFilter(filters);
},
handleEmptyTrash: function handleEmptyTrash() {
return this.props.onEmptyTrash();
},
getAvailableFilters: function getAvailableFilters() {
const filters = this.props.filters;
return Object.keys(filters).filter(filter => !(
filters[filter].length === 0
|| (
filters[filter].length === 1
&& !filters[filter][0].value
)
));
},
componentDidUpdate: function componentDidUpdate() {
const selectedFilters = this.props.filter;
this.getAvailableFilters().forEach(
(filter, i) => {
if (selectedFilters[filter] !== undefined && selectedFilters[filter]) {
jQuery(this[`filter-${i}`])
.val(selectedFilters[filter])
.trigger('change');
}
);
},
render: function render() {
const filters = this.props.filters;
const availableFilters = this.getAvailableFilters()
.map((filter, i) => (
<select
ref={(c) => { this[`filter-${i}`] = c; }}
key={`filter-${i}`}
name={filter}
>
{ filters[filter].map((option, j) => (
<option
value={option.value}
key={`filter-option-${j}`}
>{ option.label }</option>
)) }
</select>
));
let button;
if (availableFilters.length > 0) {
button = (
<input
id="post-query-submit"
onClick={this.handleFilterAction}
type="submit"
defaultValue={MailPoet.I18n.t('filter')}
className="button"
/>
);
}
let emptyTrash;
if (this.props.group === 'trash') {
emptyTrash = (
<input
onClick={this.handleEmptyTrash}
type="submit"
value={MailPoet.I18n.t('emptyTrash')}
className="button"
/>
);
}
return (
<div className="alignleft actions actions">
{ availableFilters }
{ button }
{ emptyTrash }
</div>
);
},
});
},
render: function render() {
const filters = this.props.filters;
const availableFilters = this.getAvailableFilters()
.map((filter, i) => (
<select
ref={(c) => { this[`filter-${i}`] = c; }}
key={`filter-${filter}`}
name={filter}
>
{ filters[filter].map(option => (
<option
value={option.value}
key={`filter-option-${option.value}`}
>{ option.label }</option>
)) }
</select>
));
return ListingFilters;
let button;
if (availableFilters.length > 0) {
button = (
<input
id="post-query-submit"
onClick={this.handleFilterAction}
type="submit"
defaultValue={MailPoet.I18n.t('filter')}
className="button"
/>
);
}
let emptyTrash;
if (this.props.group === 'trash') {
emptyTrash = (
<input
onClick={this.handleEmptyTrash}
type="submit"
value={MailPoet.I18n.t('emptyTrash')}
className="button"
/>
);
}
return (
<div className="alignleft actions actions">
{ availableFilters }
{ button }
{ emptyTrash }
</div>
);
},
});
export default ListingFilters;

View File

@@ -1,41 +1,60 @@
define(['react', 'classnames'], (React, classNames) => {
const ListingGroups = React.createClass({
handleSelect: function handleSelect(group) {
return this.props.onSelectGroup(group);
},
render: function render() {
const groups = this.props.groups.map((group, index) => {
if (group.name === 'trash' && group.count === 0) {
return false;
}
import React from 'react';
import classNames from 'classnames';
import PropTypes from 'prop-types';
const classes = classNames(
{ current: (group.name === this.props.group) }
);
class ListingGroups extends React.Component {
constructor(props) {
super(props);
this.handleSelect = this.handleSelect.bind(this);
}
return (
<li key={index}>
{(index > 0) ? ' |' : ''}
<a
href="javascript:;"
className={classes}
onClick={this.handleSelect.bind(this, group.name)}
>
{group.label}
<span className="count">({ parseInt(group.count, 10).toLocaleString() })</span>
</a>
</li>
handleSelect(group) {
return this.props.onSelectGroup(group);
}
render() {
const groups = this.props.groups.map((group, index) => {
if (group.name === 'trash' && group.count === 0) {
return false;
}
const classes = classNames(
{ current: (group.name === this.props.group) }
);
});
return (
<ul className="subsubsub">
{ groups }
</ul>
<li key={group.name}>
{(index > 0) ? ' |' : ''}
<a
href="javascript:;"
className={classes}
onClick={() => this.handleSelect(group.name)}
>
{group.label}
<span className="count">({ parseInt(group.count, 10).toLocaleString() })</span>
</a>
</li>
);
},
});
});
return ListingGroups;
return (
<ul className="subsubsub">
{ groups }
</ul>
);
}
}
);
ListingGroups.propTypes = {
onSelectGroup: PropTypes.func.isRequired,
groups: PropTypes.arrayOf(PropTypes.shape({
name: PropTypes.string,
count: PropTypes.number,
})).isRequired,
group: PropTypes.shape({
name: PropTypes.string,
count: PropTypes.number,
}).isRequired,
};
export default ListingGroups;

View File

@@ -19,7 +19,7 @@ const ListingHeader = React.createClass({
<ListingColumn
onSort={this.props.onSort}
sort_by={this.props.sort_by}
key={`column-${index}`}
key={`column-${column.name}`}
column={renderColumn}
/>
);