diff --git a/.eslintrc-platform-v3.4.0.json b/.eslintrc-platform.json similarity index 89% rename from .eslintrc-platform-v3.4.0.json rename to .eslintrc-platform.json index c5c100e6..5fdb105b 100644 --- a/.eslintrc-platform-v3.4.0.json +++ b/.eslintrc-platform.json @@ -1,4 +1,5 @@ { + "comment": "mattermost/platform@3.5.0/webapp/.eslintrc.json", "extends": "eslint:recommended", "parserOptions": { "ecmaVersion": 6, @@ -36,6 +37,7 @@ "block-scoped-var": 2, "brace-style": [2, "1tbs", { "allowSingleLine": false }], "camelcase": [2, {"properties": "never"}], + "class-methods-use-this": 1, "comma-dangle": [2, "never"], "comma-spacing": [2, {"before": false, "after": true}], "comma-style": [2, "last"], @@ -48,6 +50,7 @@ "dot-location": [2, "object"], "dot-notation": 2, "eqeqeq": [2, "smart"], + "func-call-spacing": [2, "never"], "func-names": 2, "func-style": [2, "declaration"], "generator-star-spacing": [2, {"before": false, "after": true}], @@ -56,14 +59,16 @@ "id-blacklist": 0, "indent": [2, 4, {"SwitchCase": 0}], "jsx-quotes": [2, "prefer-single"], - "key-spacing": [2, {"beforeColon": false, "afterColon": true}], + "key-spacing": [2, {"beforeColon": false, "afterColon": true, "mode": "strict"}], "keyword-spacing": [2, {"before": true, "after": true, "overrides": {}}], + "line-comment-position": 0, "linebreak-style": 2, "lines-around-comment": [2, { "beforeBlockComment": true, "beforeLineComment": true, "allowBlockStart": true, "allowBlockEnd": true }], "max-lines": [1, {"max": 450, "skipBlankLines": true, "skipComments": false}], "max-nested-callbacks": [1, {"max":1}], "max-nested-callbacks": [2, {"max":2}], "max-statements-per-line": [2, {"max": 1}], + "multiline-ternary": [1, "never"], "new-cap": 2, "new-parens": 2, "newline-before-return": 0, @@ -99,6 +104,8 @@ "no-fallthrough": 2, "no-floating-decimal": 2, "no-func-assign": 2, + "no-global-assign": 2, + "no-implicit-coercion": 2, "no-implicit-globals": 0, "no-implied-eval": 2, "no-inner-declarations": 0, @@ -131,12 +138,14 @@ "no-redeclare": 2, "no-return-assign": [2, "always"], "no-script-url": 2, - "no-self-assign": 2, + "no-self-assign": [2, {"props": true}], "no-self-compare": 2, "no-sequences": 2, "no-shadow": [2, {"hoist": "functions"}], "no-shadow-restricted-names": 2, "no-spaced-func": 2, + "no-tabs": 0, + "no-template-curly-in-string": 2, "no-ternary": 0, "no-this-before-super": 2, "no-throw-literal": 2, @@ -149,6 +158,7 @@ "no-unneeded-ternary": [2, {"defaultAssignment": false}], "no-unreachable": 2, "no-unsafe-finally": 2, + "no-unsafe-negation": 2, "no-unused-expressions": 2, "no-unused-vars": [2, {"vars": "all", "args": "after-used"}], "no-use-before-define": [2, "nofunc"], @@ -172,6 +182,7 @@ "padded-blocks": [2, "never"], "prefer-arrow-callback": 2, "prefer-const": 2, + "prefer-numeric-literals": 2, "prefer-reflect": 2, "prefer-rest-params": 2, "prefer-spread": 2, @@ -184,6 +195,7 @@ "react/jsx-closing-bracket-location": [2, { "location": "tag-aligned" }], "react/jsx-curly-spacing": [2, "never"], "react/jsx-equals-spacing": [2, "never"], + "react/jsx-filename-extension": 2, "react/jsx-first-prop-new-line": [2, "multiline"], "react/jsx-handler-names": 0, "react/jsx-indent": [2, 4], @@ -196,11 +208,10 @@ "react/jsx-no-target-blank": 2, "react/jsx-no-undef": 2, "react/jsx-pascal-case": 2, - "react/jsx-filename-extension": 2, "react/jsx-space-before-closing": [2, "never"], "react/jsx-uses-react": 2, "react/jsx-uses-vars": 2, - "react/no-comment-textnodes": 2, + "react/jsx-no-comment-textnodes": 2, "react/no-danger": 0, "react/no-deprecated": 2, "react/no-did-mount-set-state": 2, @@ -219,19 +230,28 @@ "react/require-render-return": 2, "react/self-closing-comp": 2, "react/sort-comp": 0, - "react/wrap-multilines": 2, + "react/jsx-wrap-multilines": 2, + "react/no-find-dom-node": 1, + "react/forbid-component-props": 0, + "react/no-danger-with-children": 2, + "react/no-unused-prop-types": [1, {"skipShapeProps": true}], + "react/style-prop-object": 2, + "react/no-children-prop": 2, + "react/no-unescaped-entities": 2, "require-yield": 2, "rest-spread-spacing": [2, "never"], "semi": [2, "always"], "semi-spacing": [2, {"before": false, "after": true}], "sort-imports": 0, + "sort-keys": 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 }], + "symbol-description": 2, "template-curly-spacing": [2, "never"], - "valid-typeof": 2, + "valid-typeof": [2, {"requireStringLiterals": false}], "vars-on-top": 0, "wrap-iife": [2, "outside"], "wrap-regex": 2, diff --git a/.eslintrc.json b/.eslintrc.json index cc864d9b..f2e32637 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,5 @@ { - "extends": "./.eslintrc-platform-v3.4.0.json", + "extends": "./.eslintrc-platform.json", "rules": { "global-require": 1, "indent": [2, 2, {"SwitchCase": 0}], diff --git a/package.json b/package.json index c8d2a2cd..6ef5b1f9 100644 --- a/package.json +++ b/package.json @@ -36,31 +36,30 @@ "lint:js": "eslint --ext .js --ext .jsx ." }, "devDependencies": { - "7zip-bin": "^2.0.1", - "babel-core": "^6.7.5", - "babel-eslint": "^6.1.2", - "babel-loader": "^6.2.4", - "babel-preset-react": "^6.5.0", + "7zip-bin": "^2.0.4", + "babel-core": "^6.21.0", + "babel-eslint": "^7.1.1", + "babel-loader": "^6.2.10", + "babel-preset-react": "^6.16.0", "chai": "^3.5.0", - "chai-as-promised": "^5.3.0", - "cross-env": "^3.1.2", - "devtron": "^1.3.0", - "electron": "1.4.12", - "electron-builder": "^7.11.2", - "electron-connect": "~0.6.0", - "eslint": "^3.4.0", - "eslint-plugin-react": "^6.2.0", + "chai-as-promised": "^6.0.0", + "cross-env": "^3.1.3", + "devtron": "^1.4.0", + "electron": "1.4.13", + "electron-builder": "^10.9.2", + "electron-connect": "^0.6.1", + "eslint": "^3.12.2", + "eslint-plugin-react": "^6.8.0", "gulp": "^3.9.1", "gulp-diff": "^1.0.0", - "gulp-esformatter": "^6.0.0", "gulp-jsbeautifier": "^2.0.3", "json-loader": "^0.5.4", - "mocha": "^3.0.2", + "mocha": "^3.2.0", "mocha-circleci-reporter": "0.0.2", "npm-run-all": "^3.1.2", - "spectron": "~3.4.0", - "webpack": "^1.13.1", - "webpack-merge": "^0.14.1" + "spectron": "~3.4.1", + "webpack": "^1.14.0", + "webpack-merge": "^1.1.2" }, "build": { "appId": "com.mattermost.desktop", diff --git a/scripts/cp_artifacts.sh b/scripts/cp_artifacts.sh index 957f344a..ae56ff41 100644 --- a/scripts/cp_artifacts.sh +++ b/scripts/cp_artifacts.sh @@ -14,5 +14,5 @@ cp "${SRC}/mac/Mattermost-${VERSION}-mac.tar.gz" "${DEST}/mattermost-desktop-${V cp "${SRC}/mattermost-desktop-${VERSION}.tar.gz" "${DEST}/mattermost-desktop-${VERSION}-linux-x64.tar.gz" cp "${SRC}/mattermost-desktop-${VERSION}-ia32.tar.gz" "${DEST}/mattermost-desktop-${VERSION}-linux-ia32.tar.gz" -cp "${SRC}/mattermost-desktop-${VERSION}-amd64.deb" "${DEST}/mattermost-desktop-${VERSION}-linux-x64.deb" -cp "${SRC}/mattermost-desktop-${VERSION}-ia32.deb" "${DEST}/mattermost-desktop-${VERSION}-linux-ia32.deb" +cp "${SRC}/mattermost-desktop_${VERSION}_amd64.deb" "${DEST}/mattermost-desktop-${VERSION}-linux-x64.deb" +cp "${SRC}/mattermost-desktop_${VERSION}_i386.deb" "${DEST}/mattermost-desktop-${VERSION}-linux-i386.deb" diff --git a/src/browser/components/MattermostView.jsx b/src/browser/components/MattermostView.jsx index 59243a6d..23eb558f 100644 --- a/src/browser/components/MattermostView.jsx +++ b/src/browser/components/MattermostView.jsx @@ -93,11 +93,7 @@ const MattermostView = React.createClass({ }); } - osLocale((err, locale) => { - if (err) { - console.log(err); - return; - } + osLocale().then((locale) => { if (locale === 'ja_JP') { applyCssFile(__dirname + '/css/jp_fonts.css'); } diff --git a/src/package.json b/src/package.json index 2e175f16..7ce051b6 100644 --- a/src/package.json +++ b/src/package.json @@ -12,18 +12,18 @@ "homepage": "https://about.mattermost.com", "license": "Apache-2.0", "devDependencies": { - "electron-connect": "~0.6.0" + "electron-connect": "^0.6.1" }, "dependencies": { "auto-launch": "^5.0.1", "bootstrap": "^3.3.7", - "electron-context-menu": "^0.6.0", + "electron-context-menu": "^0.8.0", "electron-squirrel-startup": "^1.0.0", - "os-locale": "^1.4.0", - "react": "^15.3.0", - "react-addons-css-transition-group": "^15.3.0", - "react-bootstrap": "~0.30.6", - "react-dom": "^15.3.0", + "os-locale": "^2.0.0", + "react": "^15.4.1", + "react-addons-css-transition-group": "^15.4.1", + "react-bootstrap": "~0.30.7", + "react-dom": "^15.4.1", "yargs": "^3.32.0" } }