From 4b260b761a78ea1a0dd6b02df7d25e93b496b6ff Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Thu, 12 May 2016 07:50:53 -0400 Subject: Updating client dependancies and ESLint (#2954) * Updating client dependancies * Fixing eslint errors with updates * Updating eslint --- webapp/.eslintrc.json | 436 +++++++++++---------- webapp/components/about_build_modal.jsx | 4 +- webapp/components/activity_log_modal.jsx | 12 +- webapp/components/admin_console/admin_sidebar.jsx | 32 +- .../admin_console/compliance_reports.jsx | 3 +- webapp/components/admin_console/email_settings.jsx | 74 ++-- .../components/admin_console/gitlab_settings.jsx | 17 +- webapp/components/admin_console/image_settings.jsx | 18 +- .../components/admin_console/license_settings.jsx | 1 + webapp/components/admin_console/log_settings.jsx | 34 +- .../components/admin_console/privacy_settings.jsx | 34 +- webapp/components/admin_console/rate_settings.jsx | 34 +- .../components/admin_console/service_settings.jsx | 162 ++++---- webapp/components/admin_console/sql_settings.jsx | 18 +- webapp/components/admin_console/team_settings.jsx | 64 +-- webapp/components/admin_console/user_item.jsx | 4 +- webapp/components/analytics/statistic_count.jsx | 2 +- webapp/components/backstage/add_command.jsx | 3 +- .../components/backstage/add_incoming_webhook.jsx | 3 +- .../components/backstage/add_outgoing_webhook.jsx | 3 +- webapp/components/channel_header.jsx | 10 +- webapp/components/channel_notifications_modal.jsx | 8 +- webapp/components/create_comment.jsx | 18 +- webapp/components/error_bar.jsx | 2 +- webapp/components/file_attachment.jsx | 13 +- webapp/components/file_info_preview.jsx | 1 + webapp/components/header_footer_template.jsx | 8 +- webapp/components/invite_member_modal.jsx | 112 +++--- webapp/components/navbar_dropdown.jsx | 4 +- webapp/components/post_attachment.jsx | 34 +- webapp/components/post_attachment_oembed.jsx | 39 +- webapp/components/post_body_additional_content.jsx | 6 +- webapp/components/removed_from_channel_modal.jsx | 26 +- webapp/components/settings_sidebar.jsx | 4 +- webapp/components/sidebar.jsx | 28 +- webapp/components/sidebar_header.jsx | 2 +- webapp/components/sidebar_right_menu.jsx | 4 +- webapp/components/signup_user_complete.jsx | 54 +-- webapp/components/team_general_tab.jsx | 6 +- webapp/components/team_import_tab.jsx | 3 +- webapp/components/team_settings_modal.jsx | 6 +- webapp/components/textbox.jsx | 1 + webapp/components/toggle_modal_button.jsx | 4 +- .../components/tutorial/tutorial_intro_screens.jsx | 1 + .../user_settings/custom_theme_chooser.jsx | 10 +- .../user_settings/import_theme_modal.jsx | 2 +- .../user_settings/premade_theme_chooser.jsx | 1 + .../user_settings/user_settings_notifications.jsx | 15 +- .../user_settings/user_settings_security.jsx | 10 +- .../user_settings/user_settings_theme.jsx | 6 +- webapp/components/view_image.jsx | 1 + webapp/components/view_image_popover_bar.jsx | 1 + webapp/components/youtube_video.jsx | 2 +- webapp/package.json | 48 +-- webapp/stores/channel_store.jsx | 2 +- webapp/tests/.eslintrc.json | 12 + webapp/tests/client_channel.test.jsx | 7 - webapp/tests/client_command.test.jsx | 7 - webapp/tests/client_general.test.jsx | 7 - webapp/tests/client_hooks.test.jsx | 7 - webapp/tests/client_oauth.test.jsx | 7 - webapp/tests/client_post.test.jsx | 7 - webapp/tests/client_preferences.test.jsx | 7 - webapp/tests/client_team.test.jsx | 7 - webapp/tests/client_user.test.jsx | 7 - webapp/tests/spinner_button.test.jsx | 8 +- webapp/tests/test_helper.jsx | 8 - webapp/utils/text_formatting.jsx | 2 +- webapp/utils/utils.jsx | 10 +- 69 files changed, 762 insertions(+), 791 deletions(-) create mode 100644 webapp/tests/.eslintrc.json (limited to 'webapp') diff --git a/webapp/.eslintrc.json b/webapp/.eslintrc.json index 3eb02cc40..0597f13b9 100644 --- a/webapp/.eslintrc.json +++ b/webapp/.eslintrc.json @@ -1,224 +1,228 @@ { - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true, - "impliedStrict": true, - "modules": true - } - }, - "parser": "babel-eslint", - "plugins": [ - "react" - ], - "env": { - "browser": true, - "node": true, - "jquery": true, - "es6": true - }, - "globals": { + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "jsx": true, + "impliedStrict": true, + "modules": true + } + }, + "parser": "babel-eslint", + "plugins": [ + "react" + ], + "env": { + "browser": true, + "node": true, + "jquery": true, + "es6": true + }, + "globals": { "jest": true, "describe": true, "it": true, "expect": true, "before": true }, - "rules": { - "comma-dangle": [2, "never"], - "array-callback-return": 2, - "prefer-rest-params": 2, - "no-unmodified-loop-condition": 2, - "sort-imports": 0, - "no-new-symbol": 2, - "no-empty-function": 2, - "no-whitespace-before-property": 2, - "no-useless-constructor": 2, - "id-blacklist": 0, - "one-var-declaration-per-line": 0, - "no-extra-label": 2, - "template-curly-spacing": [2, "never"], - "no-self-assign": 2, - "newline-per-chained-call": 0, - "no-confusing-arrow": 2, - "no-case-declarations": 2, - "no-cond-assign": [2, "except-parens"], - "no-console": 2, - "no-constant-condition": 2, - "no-debugger": 2, - "no-dupe-args": 2, - "no-dupe-keys": 2, - "no-duplicate-case": 2, - "no-empty": 2, - "no-empty-pattern": 2, - "no-ex-assign": 2, - "no-extra-semi": 2, - "no-fallthrough": 2, - "no-func-assign": 2, - "no-inner-declarations": 0, - "no-invalid-regexp": 2, - "no-irregular-whitespace": 2, - "no-unexpected-multiline": 2, - "no-unreachable": 2, - "no-magic-numbers": [1, { "ignore": [-1, 0, 1, 2], "enforceConst": true, "detectObjects": true } ], - "valid-typeof": 2, - - "block-scoped-var": 2, - "complexity": [0, 8], - "consistent-return": 2, - "curly": [2, "all"], - "dot-location": [2, "object"], - "dot-notation": 2, - "eqeqeq": [2, "smart"], - "global-require": 2, - "guard-for-in": 2, - "no-alert": 2, - "no-array-constructor": 2, - "no-caller": 2, - "no-div-regex": 2, - "no-else-return": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-extra-bind": 2, - "no-floating-decimal": 2, - "no-implied-eval": 2, - "no-implicit-globals": 0, - "no-iterator": 2, - "no-labels": 2, - "no-lone-blocks": 2, - "no-loop-func": 2, - "no-multi-spaces": [2, { "exceptions": { "Property": false } }], - "no-multi-str": 0, - "no-native-reassign": 2, - "no-new": 2, - "no-new-func": 2, - "no-new-object": 2, - "no-new-wrappers": 2, - "no-octal-escape": 2, - "no-param-reassign": 2, - "no-process-env": 2, - "no-process-exit": 2, - "no-proto": 2, - "no-redeclare": 2, - "no-return-assign": [2, "always"], - "no-script-url": 2, - "no-self-compare": 2, - "no-sequences": 2, - "no-throw-literal": 2, - "no-undef-init": 2, - "no-unused-expressions": 2, - "no-useless-concat": 1, - "no-void": 2, - "no-warning-comments": 1, - "no-with": 2, - "radix": 2, - "vars-on-top": 0, - "wrap-iife": [2, "outside"], - "yoda": [2, "never", {"exceptRange": false, "onlyEquality": false}], - - "no-undefined": 2, - "no-shadow": [2, {"hoist": "functions"}], - "no-shadow-restricted-names": 2, - "no-unused-vars": [2, {"vars": "all", "args": "after-used"}], - "no-use-before-define": [2, "nofunc"], - - // Style - "array-bracket-spacing": [2, "never"], - "brace-style": [2, "1tbs", { "allowSingleLine": false }], - "camelcase": [2, {"properties": "never"}], - "comma-spacing": [2, {"before": false, "after": true}], - "comma-style": [2, "last"], - "computed-property-spacing": [2, "never"], - "consistent-this": [2, "self"], - "func-names": 2, - "func-style": [2, "declaration"], - "indent": [2, 4, {"SwitchCase": 0}], - "jsx-quotes": [2, "prefer-single"], - "key-spacing": [2, {"beforeColon": false, "afterColon": true}], - "linebreak-style": 2, - "lines-around-comment": [2, { "beforeBlockComment": true, "beforeLineComment": true, "allowBlockStart": true, "allowBlockEnd": true }], - "new-cap": 2, - "new-parens": 2, - "no-lonely-if": 2, - "no-mixed-spaces-and-tabs": 2, - "no-multiple-empty-lines": [2, {"max": 1}], - "no-negated-condition": 2, - "no-nested-ternary": 2, - "no-spaced-func": 2, - "no-ternary": 0, - "no-trailing-spaces": [2, { "skipBlankLines": false }], - "no-underscore-dangle": 2, - "no-unneeded-ternary": [2, {"defaultAssignment": false}], - "object-curly-spacing": [2, "never"], - "one-var": [2, "never"], - "operator-linebreak": [2, "after"], - "padded-blocks": [2, "never"], - "quote-props": [2, "as-needed"], - "quotes": [2, "single", "avoid-escape"], - "semi": [2, "always"], - "semi-spacing": [2, {"before": false, "after": true}], - "keyword-spacing": [2, {"before": true, "after": true, "overrides": {}}], - "space-before-blocks": [2, "always"], - "space-before-function-paren": [2, "never"], - "space-in-parens": [2, "never"], - "space-infix-ops": 2, - "space-unary-ops": [2, { "words": true, "nonwords": false }], - "wrap-regex": 2, - - // ES6 stuff - "arrow-parens": [2, "always"], - "arrow-body-style": 0, - "arrow-spacing": [2, { "before": true, "after": true }], - "constructor-super": 2, - "generator-star-spacing": [2, {"before": false, "after": true}], - "no-class-assign": 2, - "no-const-assign": 2, - "no-dupe-class-members": 2, - "no-this-before-super": 2, - "no-var": 0, - "object-shorthand": [1, "always"], - "prefer-arrow-callback": 1, - "prefer-const": 1, - "prefer-spread": 2, - "prefer-reflect": 1, - "prefer-template": 0, - "require-yield": 2, - - // React Specific - "react/display-name": [2, { "ignoreTranspilerName": false }], - "react/no-deprecated": 2, - "react/no-is-mounted": 2, - "react/no-string-refs": 0, - "react/jsx-pascal-case": 2, - "react/jsx-indent": [1, 4], - "react/jsx-equals-spacing": [2, "never"], - "react/jsx-handler-names": 0, - "react/jsx-boolean-value": [2, "always"], - "react/jsx-closing-bracket-location": [2, { "location": "tag-aligned" }], - "react/jsx-curly-spacing": [2, "never"], - "react/jsx-indent-props": [2, 4], - "react/jsx-key": 2, - "react/jsx-max-props-per-line": [2, { "maximum": 1 }], - "react/jsx-no-bind": 1, - "react/jsx-space-before-closing": [2, "never"], - "react/jsx-no-duplicate-props": [2, { "ignoreCase": false }], - "react/jsx-no-literals": 1, - "react/jsx-no-undef": 2, - "react/jsx-uses-react": 2, - "react/jsx-uses-vars": 2, - "react/no-danger": 0, - "react/no-did-mount-set-state": 2, - "react/no-did-update-set-state": 2, - "react/no-direct-mutation-state": 2, - "react/no-multi-comp": [2, { "ignoreStateless": true }], - "react/no-set-state": 0, - "react/no-unknown-property": 2, - "react/prefer-es6-class": 2, - "react/prop-types": 2, - "react/self-closing-comp": 2, - "react/sort-comp": 0, - "react/wrap-multilines": 2 - } + "rules": { + "array-bracket-spacing": [2, "never"], + "array-callback-return": 2, + "arrow-body-style": 0, + "arrow-parens": [2, "always"], + "arrow-spacing": [2, { "before": true, "after": true }], + "block-scoped-var": 2, + "brace-style": [2, "1tbs", { "allowSingleLine": false }], + "camelcase": [2, {"properties": "never"}], + "comma-dangle": [2, "never"], + "comma-spacing": [2, {"before": false, "after": true}], + "comma-style": [2, "last"], + "complexity": [1, 10], + "computed-property-spacing": [2, "never"], + "consistent-return": 2, + "consistent-this": [2, "self"], + "constructor-super": 2, + "curly": [2, "all"], + "dot-location": [2, "object"], + "dot-notation": 2, + "eqeqeq": [2, "smart"], + "func-names": 2, + "func-style": [2, "declaration"], + "generator-star-spacing": [2, {"before": false, "after": true}], + "global-require": 2, + "guard-for-in": 2, + "id-blacklist": 0, + "indent": [2, 4, {"SwitchCase": 0}], + "jsx-quotes": [2, "prefer-single"], + "key-spacing": [2, {"beforeColon": false, "afterColon": true}], + "keyword-spacing": [2, {"before": true, "after": true, "overrides": {}}], + "linebreak-style": 2, + "lines-around-comment": [2, { "beforeBlockComment": true, "beforeLineComment": true, "allowBlockStart": true, "allowBlockEnd": true }], + "max-nested-callbacks": [1, {"max":1}], + "max-nested-callbacks": [2, {"max":2}], + "max-statements-per-line": [2, {"max": 1}], + "new-cap": 2, + "new-parens": 2, + "newline-before-return": 0, + "newline-per-chained-call": 0, + "no-alert": 2, + "no-array-constructor": 2, + "no-caller": 2, + "no-case-declarations": 2, + "no-class-assign": 2, + "no-cond-assign": [2, "except-parens"], + "no-confusing-arrow": 2, + "no-console": 2, + "no-const-assign": 2, + "no-constant-condition": 2, + "no-debugger": 2, + "no-div-regex": 2, + "no-dupe-args": 2, + "no-dupe-class-members": 2, + "no-dupe-keys": 2, + "no-duplicate-case": 2, + "no-duplicate-imports": [2, {"includeExports": true}], + "no-else-return": 2, + "no-empty": 2, + "no-empty-function": 2, + "no-empty-pattern": 2, + "no-eval": 2, + "no-ex-assign": 2, + "no-extend-native": 2, + "no-extra-bind": 2, + "no-extra-label": 2, + "no-extra-semi": 2, + "no-fallthrough": 2, + "no-floating-decimal": 2, + "no-func-assign": 2, + "no-implicit-globals": 0, + "no-implied-eval": 2, + "no-inner-declarations": 0, + "no-invalid-regexp": 2, + "no-irregular-whitespace": 2, + "no-iterator": 2, + "no-labels": 2, + "no-lone-blocks": 2, + "no-lonely-if": 2, + "no-loop-func": 2, + "no-magic-numbers": [1, { "ignore": [-1, 0, 1, 2], "enforceConst": true, "detectObjects": true } ], + "no-mixed-spaces-and-tabs": 2, + "no-multi-spaces": [2, { "exceptions": { "Property": false } }], + "no-multi-str": 0, + "no-multiple-empty-lines": [2, {"max": 1}], + "no-native-reassign": 2, + "no-negated-condition": 2, + "no-nested-ternary": 2, + "no-new": 2, + "no-new-func": 2, + "no-new-object": 2, + "no-new-symbol": 2, + "no-new-wrappers": 2, + "no-octal-escape": 2, + "no-param-reassign": 2, + "no-process-env": 2, + "no-process-exit": 2, + "no-proto": 2, + "no-redeclare": 2, + "no-return-assign": [2, "always"], + "no-script-url": 2, + "no-self-assign": 2, + "no-self-compare": 2, + "no-sequences": 2, + "no-shadow": [2, {"hoist": "functions"}], + "no-shadow-restricted-names": 2, + "no-spaced-func": 2, + "no-ternary": 0, + "no-this-before-super": 2, + "no-throw-literal": 2, + "no-trailing-spaces": [2, { "skipBlankLines": false }], + "no-undef-init": 2, + "no-undefined": 2, + "no-underscore-dangle": 2, + "no-unexpected-multiline": 2, + "no-unmodified-loop-condition": 2, + "no-unneeded-ternary": [2, {"defaultAssignment": false}], + "no-unreachable": 2, + "no-unsafe-finally": 2, + "no-unused-expressions": 2, + "no-unused-vars": [2, {"vars": "all", "args": "after-used"}], + "no-use-before-define": [2, "nofunc"], + "no-useless-computed-key": 2, + "no-useless-concat": 2, + "no-useless-constructor": 2, + "no-useless-escape": 2, + "no-var": 0, + "no-void": 2, + "no-warning-comments": 1, + "no-whitespace-before-property": 2, + "no-with": 2, + "object-curly-spacing": [2, "never"], + "object-shorthand": [1, "always"], + "one-var": [2, "never"], + "one-var-declaration-per-line": 0, + "operator-linebreak": [2, "after"], + "padded-blocks": [2, "never"], + "prefer-arrow-callback": 2, + "prefer-const": 2, + "prefer-reflect": 2, + "prefer-rest-params": 2, + "prefer-spread": 2, + "prefer-template": 0, + "quote-props": [2, "as-needed"], + "quotes": [2, "single", "avoid-escape"], + "radix": 2, + "react/display-name": [2, { "ignoreTranspilerName": false }], + "react/jsx-boolean-value": [2, "always"], + "react/jsx-closing-bracket-location": [2, { "location": "tag-aligned" }], + "react/jsx-curly-spacing": [2, "never"], + "react/jsx-equals-spacing": [2, "never"], + "react/jsx-first-prop-new-line": [2, "multiline"], + "react/jsx-handler-names": 0, + "react/jsx-indent": [2, 4], + "react/jsx-indent-props": [2, 4], + "react/jsx-key": 2, + "react/jsx-max-props-per-line": [2, { "maximum": 1 }], + "react/jsx-no-bind": 1, + "react/jsx-no-duplicate-props": [2, { "ignoreCase": false }], + "react/jsx-no-literals": 2, + "react/jsx-no-target-blank": 2, + "react/jsx-no-undef": 2, + "react/jsx-pascal-case": 2, + "react/jsx-space-before-closing": [2, "never"], + "react/jsx-uses-react": 2, + "react/jsx-uses-vars": 2, + "react/no-danger": 0, + "react/no-deprecated": 2, + "react/no-did-mount-set-state": 2, + "react/no-did-update-set-state": 2, + "react/no-direct-mutation-state": 2, + "react/no-is-mounted": 2, + "react/no-multi-comp": [2, { "ignoreStateless": true }], + "react/no-set-state": 0, + "react/no-string-refs": 0, + "react/no-unknown-property": 2, + "react/prefer-es6-class": 2, + "react/prefer-stateless-function": 0, + "react/prop-types": 2, + "react/require-render-return": 2, + "react/self-closing-comp": 2, + "react/sort-comp": 0, + "react/wrap-multilines": 2, + "require-yield": 2, + "semi": [2, "always"], + "semi-spacing": [2, {"before": false, "after": true}], + "sort-imports": 0, + "space-before-blocks": [2, "always"], + "space-before-function-paren": [2, "never"], + "space-in-parens": [2, "never"], + "space-infix-ops": 2, + "space-unary-ops": [2, { "words": true, "nonwords": false }], + "template-curly-spacing": [2, "never"], + "valid-typeof": 2, + "vars-on-top": 0, + "wrap-iife": [2, "outside"], + "wrap-regex": 2, + "yoda": [2, "never", {"exceptRange": false, "onlyEquality": false}] + } } diff --git a/webapp/components/about_build_modal.jsx b/webapp/components/about_build_modal.jsx index 4fd946401..22354d80e 100644 --- a/webapp/components/about_build_modal.jsx +++ b/webapp/components/about_build_modal.jsx @@ -45,6 +45,7 @@ export default class AboutBuildModal extends React.Component { /> {'mattermost.org'} @@ -76,6 +77,7 @@ export default class AboutBuildModal extends React.Component { /> {'about.mattermost.com'} @@ -133,7 +135,7 @@ export default class AboutBuildModal extends React.Component { id='about.version' defaultMessage='Version:' /> -  {config.Version} ({config.BuildNumber}) + {'\u00a0' + config.Version + '\u00a0' + config.BuildNumber} {licensee} diff --git a/webapp/components/activity_log_modal.jsx b/webapp/components/activity_log_modal.jsx index d3e5ce66d..ab6224906 100644 --- a/webapp/components/activity_log_modal.jsx +++ b/webapp/components/activity_log_modal.jsx @@ -23,7 +23,7 @@ export default class ActivityLogModal extends React.Component { this.onHide = this.onHide.bind(this); this.onShow = this.onShow.bind(this); - let state = this.getStateFromStores(); + const state = this.getStateFromStores(); state.moreInfo = []; this.state = state; @@ -43,14 +43,14 @@ export default class ActivityLogModal extends React.Component { modalContent.removeClass('animation--highlight'); }, 1500); Client.revokeSession(altId, - function handleRevokeSuccess() { + () => { AsyncClient.getSessions(); }, - function handleRevokeError(err) { - let state = this.getStateFromStores(); + (err) => { + const state = this.getStateFromStores(); state.serverError = err; this.setState(state); - }.bind(this) + } ); } onShow() { @@ -85,7 +85,7 @@ export default class ActivityLogModal extends React.Component { } } handleMoreInfo(index) { - let newMoreInfo = this.state.moreInfo; + const newMoreInfo = this.state.moreInfo; newMoreInfo[index] = true; this.setState({moreInfo: newMoreInfo}); } diff --git a/webapp/components/admin_console/admin_sidebar.jsx b/webapp/components/admin_console/admin_sidebar.jsx index da406e647..4ffc31815 100644 --- a/webapp/components/admin_console/admin_sidebar.jsx +++ b/webapp/components/admin_console/admin_sidebar.jsx @@ -134,13 +134,13 @@ export default class AdminSidebar extends React.Component { placement='top' overlay={removeTooltip} > - - {'×'} - + + {'×'} + @@ -424,7 +424,7 @@ export default class AdminSidebar extends React.Component {