From 24fc7607360877b53b4a5e04d8c48c28dc333f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Sentkiewicz?= Date: Thu, 22 Dec 2016 12:10:40 +0100 Subject: [PATCH 1/2] fix eslint --- .eslintrc | 41 ++-- package.json | 13 +- server.js | 4 +- setup-test.js | 6 +- src/components/Accordion/Accordion.jsx | 8 +- src/components/Breadcrumb/Breadcrumb.jsx | 6 +- src/components/Button/Button.jsx | 4 +- src/components/Checkbox/Checkbox.jsx | 4 +- src/components/CountdownTimer/Countdown.jsx | 6 +- .../CountdownTimer/CountdownTimer.jsx | 23 +-- src/components/CountdownTimer/DateBetween.js | 6 +- src/components/DatePicker/DatePicker.jsx | 8 +- src/components/Dropdown/Dropdown.jsx | 6 +- src/components/FormField/FormField.jsx | 4 +- src/components/Header/Header.jsx | 87 ++++---- src/components/InfoIcon/InfoIcon.jsx | 4 +- src/components/InfoWindow/InfoWindow.jsx | 6 +- src/components/MapLegends/MapLegends.jsx | 2 +- src/components/Notification/Notification.jsx | 18 +- .../NotificationRow/NotificationRow.jsx | 16 +- src/components/Pagination/Pagination.jsx | 8 +- src/components/Rate/Rate.jsx | 4 +- src/components/Row/Row.jsx | 6 +- .../SelectDropdown/SelectDropdown.jsx | 14 +- src/components/StatusIcon/StatusIcon.jsx | 2 +- src/components/StatusLabel/StatusLabel.jsx | 4 +- src/components/Tabs/Tabs.jsx | 2 +- src/components/TextField/TextField.jsx | 6 +- src/containers/AppContainer.jsx | 10 +- src/containers/HeaderContainer.js | 4 +- src/containers/HeaderContainer2.js | 2 +- src/layouts/CoreLayout/CoreLayout.jsx | 2 +- src/main.jsx | 6 +- .../components/AddPackages/AddPackages.jsx | 2 +- .../AddServicesForm/AddServicesForm.jsx | 6 +- .../containers/AddServicesContainer.js | 2 +- .../containers/AddServicesFormContainer.js | 2 +- src/routes/AddServices/index.js | 4 +- src/routes/AddServices/modules/AddServices.js | 2 +- .../AvailablePackagesItem.jsx | 8 +- .../AvailablePackagesList.jsx | 6 +- .../DroneDetailBanner/DroneDetailBanner.jsx | 4 +- .../ModalPackageDetail/ModalPackageDetail.jsx | 63 +++--- .../containers/AvailablePackagesContainer.js | 2 +- src/routes/AvailablePackages/index.js | 4 +- .../modules/AvailablePackages.js | 50 +++-- .../BrowseProviderHeader.jsx | 19 +- .../components/BrowseProviderView.jsx | 2 + .../components/ProviderMap/ProviderMap.jsx | 41 ++-- .../ProvidersFilter/ProvidersFilter.jsx | 21 +- .../ProvidersGrid/ProvidersGrid.jsx | 28 ++- .../ProvidersGridItem/ProvidersGridItem.jsx | 7 +- .../ProvidersGridTooltips.jsx | 11 +- .../containers/BrowseProviderContainer.js | 4 +- .../containers/ProviderMapContainer.js | 2 +- src/routes/BrowseProvider/index.js | 4 +- .../BrowseProvider/modules/BrowseProvider.js | 16 +- .../DashboardRequest/DashboardRequest.jsx | 2 +- .../DashboardStatus/DashboardStatus.jsx | 2 +- .../NotificationBox/NotificationBox.jsx | 2 +- .../containers/DashboardContainer.js | 2 +- src/routes/Dashboard/index.js | 4 +- src/routes/Dashboard/modules/Dashboard.js | 2 +- .../BrowseServices/BrowseServices.jsx | 37 ++-- .../BrowseServicesItem/BrowseServicesItem.jsx | 2 +- .../DroneDetailBanner/DroneDetailBanner.jsx | 4 +- .../DroneDetailsHeader/DroneDetailsHeader.jsx | 2 +- .../DroneDetailsTabs/DroneDetailsTabs.jsx | 4 +- .../components/DroneDetailsView.jsx | 1 + .../DroneInfoDetails/DroneInfoDetails.jsx | 4 +- .../DroneInfoSpecification.jsx | 4 +- .../DroneScheduleCalendar.jsx | 4 +- .../DroneScheduleTable/DroneScheduleTable.jsx | 4 +- .../components/Feedback/Feedback.jsx | 61 +++--- .../components/FeedbackItem/FeedbackItem.jsx | 2 +- .../components/FeedbackItem/index.js | 4 +- .../LastCompletedMissions.jsx | 2 +- .../LastCompletedMissionsItem.jsx | 2 +- .../containers/DroneDetailsContainer.js | 2 +- .../containers/DroneDetailsTabsContainer.js | 4 +- .../containers/DroneScheduleTableContainer.js | 2 +- src/routes/DroneDetails/index.js | 4 +- .../DroneDetails/modules/DroneDetails.js | 67 ++++-- .../DronesMap/components/DronesMapView.jsx | 10 +- .../containers/DronesMapContainer.js | 4 +- src/routes/DronesMap/index.js | 4 +- src/routes/DronesMap/modules/DronesMap.js | 14 +- .../PictureFromMission/PictureFromMission.jsx | 2 +- .../TelemetryDataForm/TelemetryDataForm.jsx | 2 +- .../TelemetryTabs/TelemetryTabs.jsx | 8 +- .../UploadPicture/UploadPicture.jsx | 5 +- .../UploadPictureForm/UploadPictureForm.jsx | 4 +- .../UploadedPictures/UploadedPictures.jsx | 2 +- .../EditData/containers/EditDataContainer.js | 2 +- .../containers/EditDataHeaderContainer.js | 2 +- .../containers/TelemetryTabsContainer.js | 2 +- .../containers/UploadedPicturesContainer.js | 4 +- src/routes/EditData/index.js | 4 +- src/routes/EditData/modules/EditData.js | 2 +- .../EditDronesForm/EditDronesForm.jsx | 6 +- .../containers/EditDronesContainer.js | 2 +- .../containers/EditDronesFormContainer.js | 2 +- src/routes/EditDrones/index.js | 4 +- src/routes/EditDrones/modules/EditDrones.js | 2 +- .../BrowseServices/BrowseServices.jsx | 37 ++-- .../BrowseServicesItem/BrowseServicesItem.jsx | 2 +- .../Home/components/HomeBanner/HomeBanner.jsx | 6 +- .../HomeSectionHeader/HomeSectionHeader.jsx | 7 +- src/routes/Home/components/HomeView.jsx | 1 + .../Home/components/HowItWorks/HowItWorks.jsx | 5 +- .../LastCompletedMissions.jsx | 4 +- .../LastCompletedMissionsItem.jsx | 2 +- .../Home/components/LoginModal/LoginModal.jsx | 51 ++--- .../Home/components/LoginModal/index.js | 2 +- .../PopularDroneSliderItem.jsx | 2 +- .../PopularDronesSlides.jsx | 61 +++--- .../PromotedService/PromotedService.jsx | 39 ++-- .../PromotedServiceItem.jsx | 2 +- .../ProvidersGridTooltips.jsx | 11 +- .../components/SignupModal/SignupModal.jsx | 50 ++--- .../Home/components/TopDrones/TopDrones.jsx | 40 ++-- .../TopDronesItem/TopDronesItem.jsx | 3 +- src/routes/Home/containers/HomeContainer.js | 2 +- .../Home/containers/LoginModalContainer.js | 7 +- .../Home/containers/SignupModalContainer.js | 4 +- src/routes/Home/index.js | 4 +- src/routes/Home/modules/Home.js | 122 ++++++++--- .../components/MissionListView.jsx | 13 +- .../components/MissionListView.spec.jsx | 6 +- .../containers/MissionListContainer.js | 6 +- src/routes/MissionList/index.js | 4 +- src/routes/MissionList/modules/MissionList.js | 10 +- .../MissionList/modules/MissionList.spec.js | 12 +- .../components/MissionMap/MissionMap.jsx | 10 +- .../components/MissionMap/MissionMap.spec.jsx | 6 +- .../MissionPlannerHeader.jsx | 12 +- .../MissionPlannerHeader.spec.jsx | 6 +- .../components/MissionPlannerView.jsx | 8 +- .../components/MissionPlannerView.spec.jsx | 8 +- .../MissionSidebar/MissionSidebar.jsx | 4 +- .../MissionSidebar/MissionSidebar.spec.jsx | 6 +- .../MissionSidebarItem/MissionSidebarItem.jsx | 6 +- .../MissionSidebarItem.spec.jsx | 6 +- .../containers/MissionPlannerContainer.js | 6 +- .../MissionPlannerHeaderContainer.js | 6 +- src/routes/MissionPlanner/index.js | 4 +- .../MissionPlanner/modules/MissionPlanner.js | 32 +-- .../modules/MissionPlanner.spec.js | 56 +++--- .../MissProgDetailContactRow.jsx | 2 +- .../MissProgDroneEstimateRow.jsx | 2 +- .../MissProgRouteCameraRow.jsx | 2 +- .../MissionGallery/MissionGallery.jsx | 2 +- .../MissionGallerySlides.jsx | 53 +++-- .../MissionMarkAsModal/MissionMarkAsModal.jsx | 7 +- .../MissionProgressContact.jsx | 2 +- .../MissionProgressDetail.jsx | 2 +- .../MissionProgressDroneDetails.jsx | 2 +- .../MissionProgressDroneEstimation.jsx | 2 +- .../MissionProgressHeader.jsx | 11 +- .../components/ProviderMap/ProviderMap.jsx | 6 +- .../StatusDetailCamera/StatusDetailCamera.jsx | 2 +- .../MissProgDetailContactContainer.js | 2 +- .../MissProgDroneEstimateContainer.js | 2 +- .../MissProgRouteCameraContainer.js | 2 +- .../containers/MissionGalleryContainer.js | 2 +- .../containers/MissionProgressContainer.js | 2 +- .../MissionProgressHeaderContainer.js | 2 +- .../containers/ProviderMapContainer.js | 4 +- src/routes/MissionProgress/index.js | 4 +- .../modules/MissionProgress.js | 2 +- .../MyDronesTable/MyDronesTable.jsx | 14 +- .../components/MyDronesTabs/MyDronesTabs.jsx | 4 +- .../components/ProviderMap/ProviderMap.jsx | 6 +- .../MyDrone/containers/MyDroneContainer.js | 2 +- .../containers/MyDronesTabsContainer.js | 2 +- .../containers/ProviderMapContainer.js | 2 +- src/routes/MyDrone/index.js | 4 +- src/routes/MyDrone/modules/MyDrone.js | 190 +++++++++--------- .../MyRequestFilter/MyRequestFilter.jsx | 2 +- .../MyRequestItems/MyRequestItems.jsx | 7 +- .../RequestDetails/RequestDetails.jsx | 2 +- .../components/RequestItem/RequestItem.jsx | 2 +- .../RequestItemControls.jsx | 2 +- .../components/RequestMap/RequestMap.jsx | 2 +- .../containers/MyRequestContainer.js | 2 +- .../containers/MyRequestItemsContainer.js | 2 +- .../containers/RequestMapContainer.js | 2 +- src/routes/MyRequest/index.js | 4 +- src/routes/MyRequest/modules/MyRequest.js | 2 +- .../MyRequestHeader/MyRequestHeader.jsx | 12 +- .../components/MyRequestStatusView.jsx | 8 +- .../MyRequestTable/MyRequestTable.jsx | 6 +- .../containers/MyRequestStatusContainer.js | 6 +- src/routes/MyRequestStatus/index.js | 4 +- .../modules/MyRequestStatus.js | 6 +- .../MyServicesHeader/MyServicesHeader.jsx | 2 +- .../MyServicesTable/MyServicesTable.jsx | 14 +- .../containers/MyServicesContainer.js | 2 +- .../containers/MyServicesTableContainer.js | 2 +- src/routes/MyServices/index.js | 4 +- src/routes/MyServices/modules/MyServices.js | 96 ++++----- .../AvailablePackages/AvailablePackages.jsx | 2 +- .../AvailablePackagesItem.jsx | 4 +- .../ServiceDetailsHeader.jsx | 2 +- .../components/ServiceDetailsView.jsx | 2 +- .../ServiceInfoDetails/ServiceInfoDetails.jsx | 2 +- .../containers/AvailablePackagesContainer.js | 2 +- .../containers/ServiceDetailsContainer.js | 2 +- src/routes/ServiceDetails/index.js | 4 +- .../ServiceDetails/modules/ServiceDetails.js | 2 +- .../ContactDetails/ContactDetails.jsx | 2 +- .../EstimatedAmountToPay.jsx | 2 +- .../components/ItemRequest/ItemRequest.jsx | 14 +- .../components/Location/Location.jsx | 4 +- .../components/MapLegends/MapLegends.jsx | 2 +- .../components/ProviderMap/ProviderMap.jsx | 6 +- .../ServiceDetail/ServiceDetail.jsx | 6 +- .../containers/ProviderMapContainer.js | 2 +- .../containers/ServiceDetailContainer.js | 2 +- .../containers/ServiceRequestContainer.js | 2 +- src/routes/ServiceRequest/index.js | 4 +- .../ServiceRequest/modules/ServiceRequest.js | 2 +- .../DroneGraphPerformance.jsx | 14 +- .../DroneLocationsETA/DroneLocationsETA.jsx | 4 +- .../MissionGallery/MissionGallery.jsx | 4 +- .../MissionGalleryItem/MissionGalleryItem.jsx | 4 +- .../ModalRatePilot/ModalRatePilot.jsx | 4 +- .../OverallDronePerformance.jsx | 4 +- .../RatePilotForm/RatePilotForm.jsx | 8 +- .../StatusDetailCamera/StatusDetailCamera.jsx | 4 +- .../StatusDetailHeader/StatusDetailHeader.jsx | 4 +- .../StatusDetailInfo/StatusDetailInfo.jsx | 4 +- .../StatusDetailMapRoute.jsx | 4 +- .../components/StatusDetailView.jsx | 10 +- .../StatusProjectInfo/StatusProjectInfo.jsx | 4 +- .../DroneGraphPerformanceContainer.js | 8 +- .../containers/MissionGalleryContainer.js | 8 +- .../containers/ModalRatePilotContainer.js | 8 +- .../OverallDronePerformanceContainer.js | 6 +- .../containers/StatusDetailContainer.js | 6 +- .../containers/StatusDetailInfoContainer.js | 6 +- .../StatusDetailMapRouteContainer.js | 8 +- .../containers/StatusProjectInfoContainer.js | 6 +- src/routes/StatusDetail/index.js | 4 +- .../StatusDetail/modules/StatusDetail.js | 22 +- src/routes/index.js | 2 +- src/services/APIService.js | 12 +- src/store/createStore.js | 8 +- src/store/modules/global.js | 46 +++-- src/store/reducers.js | 12 +- webpack.config-test.babel.js | 6 +- webpack.config.js | 17 +- 252 files changed, 1281 insertions(+), 1238 deletions(-) diff --git a/.eslintrc b/.eslintrc index 28b279b..c15015b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,11 +1,5 @@ { - "parser": "babel-eslint", - "extends": [ - "airbnb" - ], - "plugins": [ - "babel" - ], + "extends": "eslint-config-topcoder/react", "env": { "browser": true, "mocha": true @@ -17,27 +11,20 @@ "google": true, }, "rules": { - "global-require": 0, - "no-script-url": 0, + "import/no-unresolved": [2, { ignore: ['^components/', '^containers/', '^services/', '^layouts/', '^store/', '^api/', '^routes/'] }], + + // temporary for in-progress features + "no-alert": 0, + + // disable for unit tests + "no-unused-expressions": 0, + + // relax rules + "no-magic-numbers": 0, "max-len": 0, - "new-cap": 0, - "object-curly-spacing": ["error", "always"], "react/jsx-no-bind": 0, - "no-mixed-operators": 0, - "arrow-parens": [ - 2, - "always" - ], - "import/extensions": 0, - "import/no-unresolved": 0, - "import/no-named-as-default": 0, - "import/no-extraneous-dependencies": 0, - "no-underscore-dangle": 0, - "react/forbid-prop-types": 0, - "no-unused-expressions": 0, - "jsx-a11y/anchor-has-content": 0, - "no-plusplus": 0, - "jsx-a11y/no-static-element-interactions": 0, - "no-use-before-define": ["error", { "functions": false, "classes": true }], + "import/order": 0, + "import/imports-first": 0, + "no-restricted-syntax": 0, } } diff --git a/package.json b/package.json index dcb6b63..2ee9179 100644 --- a/package.json +++ b/package.json @@ -66,10 +66,7 @@ "react-dropdown": "^1.2.0", "react-icheck": "^0.3.6", "react-input-range": "^0.9.3", - "react-modal": "^1.6.2", - "react-flexbox-grid": "^0.10.2", "react-highcharts": "^11.0.0", - "react-modal": "^1.5.2", "react-redux": "^4.0.0", "react-redux-toastr": "^4.2.2", "react-router": "^2.8.1", @@ -100,15 +97,13 @@ "yargs": "^4.0.0" }, "devDependencies": { + "babel-eslint": "^7.1.1", "chai": "^3.5.0", "css-modules-require-hook": "^4.0.5", "enzyme": "^2.6.0", - "eslint": "^3.7.1", - "eslint-config-airbnb": "^12.0.0", - "eslint-plugin-babel": "^3.3.0", - "eslint-plugin-import": "^1.16.0", - "eslint-plugin-jsx-a11y": "^2.2.2", - "eslint-plugin-react": "^6.3.0", + "eslint-config-topcoder": "^1.8.0", + "eslint-plugin-babel": "^4.0.0", + "eslint-plugin-react": "^6.8.0", "jsdom": "^9.8.3", "mocha": "^3.2.0", "mocha-webpack": "^0.7.0", diff --git a/server.js b/server.js index 63d1583..3a194cf 100644 --- a/server.js +++ b/server.js @@ -1,10 +1,12 @@ +/* eslint import/no-commonjs: 0 */ + /** * Http server for serving the frontend files */ +const path = require('path'); const express = require('express'); const webpack = require('webpack'); -const path = require('path'); const config = require('config'); const webpackConfig = require('./webpack.config'); diff --git a/setup-test.js b/setup-test.js index 88897f1..c13a70b 100644 --- a/setup-test.js +++ b/setup-test.js @@ -1,3 +1,5 @@ +/* eslint import/no-commonjs: 0 */ + const hook = require('css-modules-require-hook'); const sass = require('node-sass'); @@ -7,7 +9,7 @@ const sass = require('node-sass'); hook({ extensions: ['.scss', '.css'], generateScopedName: '[local]___[hash:base64:5]', - preprocessCss: (data, file) => sass.renderSync({ file }).css, + preprocessCss: (data, file) => sass.renderSync({file}).css, }); /* @@ -20,7 +22,7 @@ const exposedProperties = ['window', 'navigator', 'document']; global.document = jsdom(''); global.window = document.defaultView; Object.keys(document.defaultView).forEach((property) => { - if (typeof global[property] === 'undefined') { + if (!global[property]) { exposedProperties.push(property); global[property] = document.defaultView[property]; } diff --git a/src/components/Accordion/Accordion.jsx b/src/components/Accordion/Accordion.jsx index 8679f6f..eba3efe 100644 --- a/src/components/Accordion/Accordion.jsx +++ b/src/components/Accordion/Accordion.jsx @@ -1,11 +1,11 @@ -import React, { PropTypes } from 'react'; +import React, {PropTypes} from 'react'; import uncontrollable from 'uncontrollable'; import CSSModules from 'react-css-modules'; import cn from 'classnames'; import styles from './Accordion.scss'; -export const Accordion = ({ onToggleExpand, isExpanded, children, title }) => ( -
+export const Accordion = ({onToggleExpand, isExpanded, children, title}) => ( +
onToggleExpand(!isExpanded)}> {title}
@@ -20,6 +20,6 @@ Accordion.propTypes = { title: PropTypes.any, }; -export default uncontrollable(CSSModules(Accordion, styles, { allowMultiple: true }), { +export default uncontrollable(CSSModules(Accordion, styles, {allowMultiple: true}), { isExpanded: 'onToggleExpand', }); diff --git a/src/components/Breadcrumb/Breadcrumb.jsx b/src/components/Breadcrumb/Breadcrumb.jsx index 3093d09..d50a065 100644 --- a/src/components/Breadcrumb/Breadcrumb.jsx +++ b/src/components/Breadcrumb/Breadcrumb.jsx @@ -1,9 +1,9 @@ -import React, { PropTypes } from 'react'; +import React, {PropTypes} from 'react'; import CSSModules from 'react-css-modules'; -import { Link } from 'react-router'; +import {Link} from 'react-router'; import styles from './Breadcrumb.scss'; -export const Breadcrumb = ({ items }) => ( +export const Breadcrumb = ({items}) => (