From 1b98604c90d1ae3471e7f5f8a81d88ef2c0e3a75 Mon Sep 17 00:00:00 2001 From: Amine Ben hammou Date: Wed, 18 Apr 2018 18:34:12 +0200 Subject: [PATCH] ESLint rules --- assets/js/src/listing/filters.jsx | 187 ++++++++++++++---------------- assets/js/src/listing/groups.jsx | 85 ++++++++------ assets/js/src/listing/header.jsx | 2 +- 3 files changed, 143 insertions(+), 131 deletions(-) diff --git a/assets/js/src/listing/filters.jsx b/assets/js/src/listing/filters.jsx index 649658de1b..e1d47c4960 100644 --- a/assets/js/src/listing/filters.jsx +++ b/assets/js/src/listing/filters.jsx @@ -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) => ( - - )); - - let button; - - if (availableFilters.length > 0) { - button = ( - - ); } - - let emptyTrash; - if (this.props.group === 'trash') { - emptyTrash = ( - - ); - } - - return ( -
- { availableFilters } - { button } - { emptyTrash } -
); - }, - }); + }, + render: function render() { + const filters = this.props.filters; + const availableFilters = this.getAvailableFilters() + .map((filter, i) => ( + + )); - return ListingFilters; + let button; + + if (availableFilters.length > 0) { + button = ( + + ); + } + + let emptyTrash; + if (this.props.group === 'trash') { + emptyTrash = ( + + ); + } + + return ( +
+ { availableFilters } + { button } + { emptyTrash } +
+ ); + }, }); + +export default ListingFilters; diff --git a/assets/js/src/listing/groups.jsx b/assets/js/src/listing/groups.jsx index d7d25ff634..2db70034dc 100644 --- a/assets/js/src/listing/groups.jsx +++ b/assets/js/src/listing/groups.jsx @@ -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 ( -
  • - {(index > 0) ? ' |' : ''} - - {group.label} - ({ parseInt(group.count, 10).toLocaleString() }) - -
  • + 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 ( - +
  • + {(index > 0) ? ' |' : ''} + this.handleSelect(group.name)} + > + {group.label} + ({ parseInt(group.count, 10).toLocaleString() }) + +
  • ); - }, - }); + }); - return ListingGroups; + return ( + + ); + } } -); + +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; diff --git a/assets/js/src/listing/header.jsx b/assets/js/src/listing/header.jsx index 032371bfd0..13c1272b3b 100644 --- a/assets/js/src/listing/header.jsx +++ b/assets/js/src/listing/header.jsx @@ -19,7 +19,7 @@ const ListingHeader = React.createClass({ );