ESLint rules
This commit is contained in:
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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}
|
||||
/>
|
||||
);
|
||||
|
Reference in New Issue
Block a user