Code cleanup, update eslint from webapp, add ts-prune (#1884)
This commit is contained in:
@@ -2,15 +2,13 @@
|
|||||||
"root": true,
|
"root": true,
|
||||||
"extends": [
|
"extends": [
|
||||||
"plugin:mattermost/react",
|
"plugin:mattermost/react",
|
||||||
"plugin:cypress/recommended",
|
"plugin:cypress/recommended"
|
||||||
"plugin:jquery/deprecated"
|
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"babel",
|
"babel",
|
||||||
"mattermost",
|
"mattermost",
|
||||||
"import",
|
"import",
|
||||||
"cypress",
|
"cypress",
|
||||||
"jquery",
|
|
||||||
"no-only-tests",
|
"no-only-tests",
|
||||||
"@typescript-eslint"
|
"@typescript-eslint"
|
||||||
],
|
],
|
||||||
@@ -27,6 +25,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
|
"max-nested-callbacks": ["error", 10],
|
||||||
"no-unused-expressions": 0,
|
"no-unused-expressions": 0,
|
||||||
"babel/no-unused-expressions": 2,
|
"babel/no-unused-expressions": 2,
|
||||||
"eol-last": ["error", "always"],
|
"eol-last": ["error", "always"],
|
||||||
@@ -64,6 +63,11 @@
|
|||||||
"no-only-tests/no-only-tests": ["error", {"focus": ["only", "skip"]}],
|
"no-only-tests/no-only-tests": ["error", {"focus": ["only", "skip"]}],
|
||||||
"react/style-prop-object": [2, {
|
"react/style-prop-object": [2, {
|
||||||
"allow": ["Timestamp"]
|
"allow": ["Timestamp"]
|
||||||
|
}],
|
||||||
|
"no-restricted-imports": ["error", {
|
||||||
|
"paths": [
|
||||||
|
{"name": "react-bootstrap", "importNames": ["OverlayTrigger"], "message": "Please use OverlayTrigger from '/components/overlay_trigger' instead"}
|
||||||
|
]
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
"overrides": [
|
"overrides": [
|
||||||
@@ -108,6 +112,7 @@
|
|||||||
"@typescript-eslint/no-empty-function": 0,
|
"@typescript-eslint/no-empty-function": 0,
|
||||||
"@typescript-eslint/prefer-interface": 0,
|
"@typescript-eslint/prefer-interface": 0,
|
||||||
"@typescript-eslint/explicit-function-return-type": 0,
|
"@typescript-eslint/explicit-function-return-type": 0,
|
||||||
|
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||||
"@typescript-eslint/indent": [
|
"@typescript-eslint/indent": [
|
||||||
2,
|
2,
|
||||||
4,
|
4,
|
||||||
@@ -126,16 +131,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"files": ["tests/**", "**/*.test.*"],
|
"files": ["tests/**", "**/*.test.*", "tests/*.js"],
|
||||||
"env": {
|
"env": {
|
||||||
"jest": true
|
"jest": true
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"func-names": 0,
|
"func-names": 0,
|
||||||
"global-require": 0,
|
"global-require": 0,
|
||||||
|
"max-lines": 0,
|
||||||
"new-cap": 0,
|
"new-cap": 0,
|
||||||
"prefer-arrow-callback": 0,
|
"no-import-assign": 0,
|
||||||
"no-import-assign": 0
|
"no-process-env": 0,
|
||||||
|
"prefer-arrow-callback": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -144,55 +151,6 @@
|
|||||||
"babel/no-unused-expressions": 0,
|
"babel/no-unused-expressions": 0,
|
||||||
"func-names": 0,
|
"func-names": 0,
|
||||||
"import/no-unresolved": 0,
|
"import/no-unresolved": 0,
|
||||||
"jquery/no-ajax": 0,
|
|
||||||
"jquery/no-ajax-events": 0,
|
|
||||||
"jquery/no-animate": 0,
|
|
||||||
"jquery/no-attr": 0,
|
|
||||||
"jquery/no-bind": 0,
|
|
||||||
"jquery/no-class": 0,
|
|
||||||
"jquery/no-clone": 0,
|
|
||||||
"jquery/no-closest": 0,
|
|
||||||
"jquery/no-css": 0,
|
|
||||||
"jquery/no-data": 0,
|
|
||||||
"jquery/no-deferred": 0,
|
|
||||||
"jquery/no-delegate": 0,
|
|
||||||
"jquery/no-each": 0,
|
|
||||||
"jquery/no-extend": 0,
|
|
||||||
"jquery/no-fade": 0,
|
|
||||||
"jquery/no-filter": 0,
|
|
||||||
"jquery/no-find": 0,
|
|
||||||
"jquery/no-global-eval": 0,
|
|
||||||
"jquery/no-grep": 0,
|
|
||||||
"jquery/no-has": 0,
|
|
||||||
"jquery/no-hide": 0,
|
|
||||||
"jquery/no-html": 0,
|
|
||||||
"jquery/no-in-array": 0,
|
|
||||||
"jquery/no-is-array": 0,
|
|
||||||
"jquery/no-is-function": 0,
|
|
||||||
"jquery/no-is": 0,
|
|
||||||
"jquery/no-load": 0,
|
|
||||||
"jquery/no-map": 0,
|
|
||||||
"jquery/no-merge": 0,
|
|
||||||
"jquery/no-param": 0,
|
|
||||||
"jquery/no-parent": 0,
|
|
||||||
"jquery/no-parents": 0,
|
|
||||||
"jquery/no-parse-html": 0,
|
|
||||||
"jquery/no-prop": 0,
|
|
||||||
"jquery/no-proxy": 0,
|
|
||||||
"jquery/no-ready": 0,
|
|
||||||
"jquery/no-serialize": 0,
|
|
||||||
"jquery/no-show": 0,
|
|
||||||
"jquery/no-size": 0,
|
|
||||||
"jquery/no-sizzle": 0,
|
|
||||||
"jquery/no-slide": 0,
|
|
||||||
"jquery/no-submit": 0,
|
|
||||||
"jquery/no-text": 0,
|
|
||||||
"jquery/no-toggle": 0,
|
|
||||||
"jquery/no-trigger": 0,
|
|
||||||
"jquery/no-trim": 0,
|
|
||||||
"jquery/no-val": 0,
|
|
||||||
"jquery/no-when": 0,
|
|
||||||
"jquery/no-wrap": 0,
|
|
||||||
"max-nested-callbacks": 0,
|
"max-nested-callbacks": 0,
|
||||||
"no-process-env": 0,
|
"no-process-env": 0,
|
||||||
"no-unused-expressions": 0
|
"no-unused-expressions": 0
|
||||||
|
350
package-lock.json
generated
350
package-lock.json
generated
@@ -96,6 +96,7 @@
|
|||||||
"sass-loader": "^10.2.0",
|
"sass-loader": "^10.2.0",
|
||||||
"shebang-loader": "^0.0.1",
|
"shebang-loader": "^0.0.1",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
|
"ts-prune": "^0.10.2",
|
||||||
"typescript": "^4.3.4",
|
"typescript": "^4.3.4",
|
||||||
"url-loader": "^1.1.2",
|
"url-loader": "^1.1.2",
|
||||||
"webpack": "^4.44.2",
|
"webpack": "^4.44.2",
|
||||||
@@ -5860,6 +5861,131 @@
|
|||||||
"node": ">= 6"
|
"node": ">= 6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@ts-morph/common": {
|
||||||
|
"version": "0.12.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.12.2.tgz",
|
||||||
|
"integrity": "sha512-m5KjptpIf1K0t0QL38uE+ol1n+aNn9MgRq++G3Zym1FlqfN+rThsXlp3cAgib14pIeXF7jk3UtJQOviwawFyYg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"fast-glob": "^3.2.7",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"mkdirp": "^1.0.4",
|
||||||
|
"path-browserify": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/@nodelib/fs.stat": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/braces": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"fill-range": "^7.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/fast-glob": {
|
||||||
|
"version": "3.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
|
||||||
|
"integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@nodelib/fs.stat": "^2.0.2",
|
||||||
|
"@nodelib/fs.walk": "^1.2.3",
|
||||||
|
"glob-parent": "^5.1.2",
|
||||||
|
"merge2": "^1.3.0",
|
||||||
|
"micromatch": "^4.0.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/fill-range": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"to-regex-range": "^5.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/glob-parent": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"is-glob": "^4.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/is-number": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.12.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/micromatch": {
|
||||||
|
"version": "4.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
|
||||||
|
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"braces": "^3.0.1",
|
||||||
|
"picomatch": "^2.2.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/mkdirp": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
|
||||||
|
"dev": true,
|
||||||
|
"bin": {
|
||||||
|
"mkdirp": "bin/cmd.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/path-browserify": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/@ts-morph/common/node_modules/to-regex-range": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"is-number": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/auto-launch": {
|
"node_modules/@types/auto-launch": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.1.tgz",
|
||||||
@@ -10494,6 +10620,21 @@
|
|||||||
"node": ">= 4.0"
|
"node": ">= 4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/code-block-writer": {
|
||||||
|
"version": "11.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.0.tgz",
|
||||||
|
"integrity": "sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "2.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/code-block-writer/node_modules/tslib": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/code-point-at": {
|
"node_modules/code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||||
@@ -11276,9 +11417,9 @@
|
|||||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||||
},
|
},
|
||||||
"node_modules/cosmiconfig": {
|
"node_modules/cosmiconfig": {
|
||||||
"version": "7.0.0",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
|
||||||
"integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
|
"integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/parse-json": "^4.0.0",
|
"@types/parse-json": "^4.0.0",
|
||||||
@@ -29471,6 +29612,15 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/true-myth": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/true-myth/-/true-myth-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": "10.* || >= 12.*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/truncate-utf8-bytes": {
|
"node_modules/truncate-utf8-bytes": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
||||||
@@ -29495,6 +29645,16 @@
|
|||||||
"integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==",
|
"integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/ts-morph": {
|
||||||
|
"version": "13.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-13.0.2.tgz",
|
||||||
|
"integrity": "sha512-SjeeHaRf/mFsNeR3KTJnx39JyEOzT4e+DX28gQx5zjzEOuFs2eGrqeN2PLKs/+AibSxPmzV7RD8nJVKmFJqtLA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@ts-morph/common": "~0.12.2",
|
||||||
|
"code-block-writer": "^11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ts-pnp": {
|
"node_modules/ts-pnp": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
|
||||||
@@ -29509,6 +29669,32 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ts-prune": {
|
||||||
|
"version": "0.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-prune/-/ts-prune-0.10.2.tgz",
|
||||||
|
"integrity": "sha512-TXc77vO1JCtt8UKurqsZsDLPHWH0NqoEvglhA/p1Fv+r9KICCTigZSSdScDOzw7UXfZ0mLBj1GnKoWR6CNs8pQ==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"commander": "^6.2.1",
|
||||||
|
"cosmiconfig": "^7.0.1",
|
||||||
|
"json5": "^2.1.3",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"true-myth": "^4.1.0",
|
||||||
|
"ts-morph": "^13.0.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"ts-prune": "lib/index.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/ts-prune/node_modules/commander": {
|
||||||
|
"version": "6.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
|
||||||
|
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tsconfig-paths": {
|
"node_modules/tsconfig-paths": {
|
||||||
"version": "3.9.0",
|
"version": "3.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
|
||||||
@@ -36028,6 +36214,103 @@
|
|||||||
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
|
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@ts-morph/common": {
|
||||||
|
"version": "0.12.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.12.2.tgz",
|
||||||
|
"integrity": "sha512-m5KjptpIf1K0t0QL38uE+ol1n+aNn9MgRq++G3Zym1FlqfN+rThsXlp3cAgib14pIeXF7jk3UtJQOviwawFyYg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fast-glob": "^3.2.7",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"mkdirp": "^1.0.4",
|
||||||
|
"path-browserify": "^1.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@nodelib/fs.stat": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"braces": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fill-range": "^7.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fast-glob": {
|
||||||
|
"version": "3.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
|
||||||
|
"integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@nodelib/fs.stat": "^2.0.2",
|
||||||
|
"@nodelib/fs.walk": "^1.2.3",
|
||||||
|
"glob-parent": "^5.1.2",
|
||||||
|
"merge2": "^1.3.0",
|
||||||
|
"micromatch": "^4.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fill-range": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"to-regex-range": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob-parent": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-glob": "^4.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"is-number": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"micromatch": {
|
||||||
|
"version": "4.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
|
||||||
|
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"braces": "^3.0.1",
|
||||||
|
"picomatch": "^2.2.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mkdirp": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"path-browserify": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"to-regex-range": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-number": "^7.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/auto-launch": {
|
"@types/auto-launch": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.1.tgz",
|
||||||
@@ -39852,6 +40135,23 @@
|
|||||||
"q": "^1.1.2"
|
"q": "^1.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"code-block-writer": {
|
||||||
|
"version": "11.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.0.tgz",
|
||||||
|
"integrity": "sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"tslib": "2.3.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||||
@@ -40470,9 +40770,9 @@
|
|||||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||||
},
|
},
|
||||||
"cosmiconfig": {
|
"cosmiconfig": {
|
||||||
"version": "7.0.0",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
|
||||||
"integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
|
"integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/parse-json": "^4.0.0",
|
"@types/parse-json": "^4.0.0",
|
||||||
@@ -54950,6 +55250,12 @@
|
|||||||
"escape-string-regexp": "^1.0.2"
|
"escape-string-regexp": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"true-myth": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/true-myth/-/true-myth-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"truncate-utf8-bytes": {
|
"truncate-utf8-bytes": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
||||||
@@ -54971,12 +55277,44 @@
|
|||||||
"integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==",
|
"integrity": "sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"ts-morph": {
|
||||||
|
"version": "13.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-13.0.2.tgz",
|
||||||
|
"integrity": "sha512-SjeeHaRf/mFsNeR3KTJnx39JyEOzT4e+DX28gQx5zjzEOuFs2eGrqeN2PLKs/+AibSxPmzV7RD8nJVKmFJqtLA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@ts-morph/common": "~0.12.2",
|
||||||
|
"code-block-writer": "^11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ts-pnp": {
|
"ts-pnp": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
|
||||||
"integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
|
"integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"ts-prune": {
|
||||||
|
"version": "0.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-prune/-/ts-prune-0.10.2.tgz",
|
||||||
|
"integrity": "sha512-TXc77vO1JCtt8UKurqsZsDLPHWH0NqoEvglhA/p1Fv+r9KICCTigZSSdScDOzw7UXfZ0mLBj1GnKoWR6CNs8pQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"commander": "^6.2.1",
|
||||||
|
"cosmiconfig": "^7.0.1",
|
||||||
|
"json5": "^2.1.3",
|
||||||
|
"lodash": "^4.17.21",
|
||||||
|
"true-myth": "^4.1.0",
|
||||||
|
"ts-morph": "^13.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"commander": {
|
||||||
|
"version": "6.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
|
||||||
|
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"tsconfig-paths": {
|
"tsconfig-paths": {
|
||||||
"version": "3.9.0",
|
"version": "3.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
|
||||||
|
@@ -56,7 +56,8 @@
|
|||||||
"check-build-config": "npm-run-all check-build-config:build check-build-config:run",
|
"check-build-config": "npm-run-all check-build-config:build check-build-config:run",
|
||||||
"check-build-config:build": "babel ./src/common/config/buildConfig.ts -o ./dist/buildConfig.js",
|
"check-build-config:build": "babel ./src/common/config/buildConfig.ts -o ./dist/buildConfig.js",
|
||||||
"check-build-config:run": "node -r @babel/register scripts/check_build_config.js",
|
"check-build-config:run": "node -r @babel/register scripts/check_build_config.js",
|
||||||
"check-types": "tsc"
|
"check-types": "tsc",
|
||||||
|
"prune": "ts-prune"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"clearMocks": true,
|
"clearMocks": true,
|
||||||
@@ -137,6 +138,7 @@
|
|||||||
"sass-loader": "^10.2.0",
|
"sass-loader": "^10.2.0",
|
||||||
"shebang-loader": "^0.0.1",
|
"shebang-loader": "^0.0.1",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
|
"ts-prune": "^0.10.2",
|
||||||
"typescript": "^4.3.4",
|
"typescript": "^4.3.4",
|
||||||
"url-loader": "^1.1.2",
|
"url-loader": "^1.1.2",
|
||||||
"webpack": "^4.44.2",
|
"webpack": "^4.44.2",
|
||||||
|
@@ -7,11 +7,7 @@ export const CLOSE_TAB = 'close-tab';
|
|||||||
export const OPEN_TAB = 'open-tab';
|
export const OPEN_TAB = 'open-tab';
|
||||||
export const SET_ACTIVE_VIEW = 'set-active-view';
|
export const SET_ACTIVE_VIEW = 'set-active-view';
|
||||||
export const UPDATE_LAST_ACTIVE = 'update-last-active';
|
export const UPDATE_LAST_ACTIVE = 'update-last-active';
|
||||||
export const MARK_READ = 'mark-read';
|
|
||||||
export const FOCUS_BROWSERVIEW = 'focus-browserview';
|
export const FOCUS_BROWSERVIEW = 'focus-browserview';
|
||||||
export const ZOOM = 'zoom';
|
|
||||||
export const UNDO = 'undo';
|
|
||||||
export const REDO = 'redo';
|
|
||||||
export const HISTORY = 'history';
|
export const HISTORY = 'history';
|
||||||
|
|
||||||
export const QUIT = 'quit';
|
export const QUIT = 'quit';
|
||||||
@@ -34,8 +30,6 @@ export const LOAD_FAILED = 'load_fail';
|
|||||||
|
|
||||||
export const MAXIMIZE_CHANGE = 'maximized_change';
|
export const MAXIMIZE_CHANGE = 'maximized_change';
|
||||||
|
|
||||||
export const OPEN_EXTERNAL = 'open_external';
|
|
||||||
|
|
||||||
export const DOUBLE_CLICK_ON_WINDOW = 'double_click';
|
export const DOUBLE_CLICK_ON_WINDOW = 'double_click';
|
||||||
|
|
||||||
export const SHOW_NEW_SERVER_MODAL = 'show_new_server_modal';
|
export const SHOW_NEW_SERVER_MODAL = 'show_new_server_modal';
|
||||||
@@ -83,7 +77,6 @@ export const TOGGLE_LOADING_SCREEN_VISIBILITY = 'toggle-loading-screen-visibilit
|
|||||||
|
|
||||||
export const SELECT_NEXT_TAB = 'select-next-tab';
|
export const SELECT_NEXT_TAB = 'select-next-tab';
|
||||||
export const SELECT_PREVIOUS_TAB = 'select-previous-tab';
|
export const SELECT_PREVIOUS_TAB = 'select-previous-tab';
|
||||||
export const ADD_SERVER = 'add-server';
|
|
||||||
export const FOCUS_THREE_DOT_MENU = 'focus-three-dot-menu';
|
export const FOCUS_THREE_DOT_MENU = 'focus-three-dot-menu';
|
||||||
|
|
||||||
export const LOADSCREEN_END = 'loadscreen-end';
|
export const LOADSCREEN_END = 'loadscreen-end';
|
||||||
|
@@ -1,11 +1,6 @@
|
|||||||
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
||||||
// See LICENSE.txt for license information.
|
// See LICENSE.txt for license information.
|
||||||
|
|
||||||
// channel types for managing permissions
|
|
||||||
export const REQUEST_PERMISSION_CHANNEL = 'request-permission';
|
|
||||||
export const GRANT_PERMISSION_CHANNEL = 'grant-permission';
|
|
||||||
export const DENY_PERMISSION_CHANNEL = 'deny-permission';
|
|
||||||
|
|
||||||
// Permission types that can be requested
|
// Permission types that can be requested
|
||||||
export const BASIC_AUTH_PERMISSION = 'canBasicAuth';
|
export const BASIC_AUTH_PERMISSION = 'canBasicAuth';
|
||||||
|
|
||||||
|
@@ -44,7 +44,6 @@ export function getDefaultTeamWithTabsFromTeam(team: Team) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Might need to move this out
|
|
||||||
export function getServerView(srv: MattermostServer, tab: Tab) {
|
export function getServerView(srv: MattermostServer, tab: Tab) {
|
||||||
switch (tab.name) {
|
switch (tab.name) {
|
||||||
case TAB_MESSAGING:
|
case TAB_MESSAGING:
|
||||||
@@ -76,6 +75,5 @@ export function getTabDisplayName(tabType: TabType) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function canCloseTab(tabType: TabType) {
|
export function canCloseTab(tabType: TabType) {
|
||||||
// TODO: maybe rework to make the property belong to the class somehow
|
|
||||||
return tabType !== TAB_MESSAGING;
|
return tabType !== TAB_MESSAGING;
|
||||||
}
|
}
|
||||||
|
@@ -25,7 +25,7 @@ function createErrorReport(err: Error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function openDetachedExternal(url: string) {
|
function openDetachedExternal(url: string) {
|
||||||
const spawnOption = {detached: true, stdio: 'ignore' as any};
|
const spawnOption = {detached: true, stdio: 'ignore' as const};
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
case 'win32':
|
case 'win32':
|
||||||
return spawn('cmd', ['/C', 'start', url], spawnOption);
|
return spawn('cmd', ['/C', 'start', url], spawnOption);
|
||||||
|
@@ -67,7 +67,7 @@ export default class UserActivityMonitor extends EventEmitter {
|
|||||||
|
|
||||||
this.config = Object.assign({}, this.config, config);
|
this.config = Object.assign({}, this.config, config);
|
||||||
|
|
||||||
// TODO: Node typings don't map Timeout to number, but then clearInterval requires a number?
|
// Node typings don't map Timeout to number, but then clearInterval requires a number?
|
||||||
this.systemIdleTimeIntervalID = setInterval(() => {
|
this.systemIdleTimeIntervalID = setInterval(() => {
|
||||||
try {
|
try {
|
||||||
this.updateIdleTime(electron.powerMonitor.getSystemIdleTime());
|
this.updateIdleTime(electron.powerMonitor.getSystemIdleTime());
|
||||||
|
@@ -36,7 +36,7 @@ const emitDropdown = (expired?: Map<string, boolean>, mentions?: Map<string, num
|
|||||||
status.emitter.emit(UPDATE_DROPDOWN_MENTIONS, expired, mentions, unreads);
|
status.emitter.emit(UPDATE_DROPDOWN_MENTIONS, expired, mentions, unreads);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const emitStatus = () => {
|
const emitStatus = () => {
|
||||||
const expired = anyExpired();
|
const expired = anyExpired();
|
||||||
const mentions = totalMentions();
|
const mentions = totalMentions();
|
||||||
const unreads = anyUnreads();
|
const unreads = anyUnreads();
|
||||||
@@ -65,28 +65,19 @@ export const updateBadge = () => {
|
|||||||
emitBadge(expired, mentions, unreads);
|
emitBadge(expired, mentions, unreads);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getUnreads = (serverName: string) => {
|
const getUnreads = (serverName: string) => {
|
||||||
return status.unreads.get(serverName) || false;
|
return status.unreads.get(serverName) || false;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getMentions = (serverName: string) => {
|
const getMentions = (serverName: string) => {
|
||||||
return status.mentions.get(serverName) || 0; // this might be undefined as a way to tell that we don't know as it might need to login still.
|
return status.mentions.get(serverName) || 0; // this might be undefined as a way to tell that we don't know as it might need to login still.
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getIsExpired = (serverName: string) => {
|
const getIsExpired = (serverName: string) => {
|
||||||
return status.expired.get(serverName) || false;
|
return status.expired.get(serverName) || false;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const anyMentions = () => {
|
const totalMentions = () => {
|
||||||
for (const v of status.mentions.values()) {
|
|
||||||
if (v > 0) {
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const totalMentions = () => {
|
|
||||||
let total = 0;
|
let total = 0;
|
||||||
for (const v of status.mentions.values()) {
|
for (const v of status.mentions.values()) {
|
||||||
total += v;
|
total += v;
|
||||||
@@ -94,7 +85,7 @@ export const totalMentions = () => {
|
|||||||
return total;
|
return total;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const anyUnreads = () => {
|
const anyUnreads = () => {
|
||||||
for (const v of status.unreads.values()) {
|
for (const v of status.unreads.values()) {
|
||||||
if (v) {
|
if (v) {
|
||||||
return v;
|
return v;
|
||||||
@@ -103,7 +94,7 @@ export const anyUnreads = () => {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const anyExpired = () => {
|
const anyExpired = () => {
|
||||||
for (const v of status.expired.values()) {
|
for (const v of status.expired.values()) {
|
||||||
if (v) {
|
if (v) {
|
||||||
return v;
|
return v;
|
||||||
@@ -113,11 +104,9 @@ export const anyExpired = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// add any other event emitter methods if needed
|
// add any other event emitter methods if needed
|
||||||
export const on = (event: string, listener: (...args: any[]) => void) => {
|
export const on = status.emitter.on;
|
||||||
status.emitter.on(event, listener);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const setSessionExpired = (serverName: string, expired: boolean) => {
|
const setSessionExpired = (serverName: string, expired: boolean) => {
|
||||||
const isExpired = Boolean(expired);
|
const isExpired = Boolean(expired);
|
||||||
const old = status.expired.get(serverName);
|
const old = status.expired.get(serverName);
|
||||||
status.expired.set(serverName, isExpired);
|
status.expired.set(serverName, isExpired);
|
||||||
|
@@ -1,201 +0,0 @@
|
|||||||
// Copyright (c) 2015-2016 Yuya Ochiai
|
|
||||||
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
||||||
// See LICENSE.txt for license information.
|
|
||||||
|
|
||||||
// TODO: This needs to be rebuilt anyways, skipping TS migration for now
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
//@ts-nocheck
|
|
||||||
|
|
||||||
import path from 'path';
|
|
||||||
|
|
||||||
import {app, BrowserWindow, BrowserWindowConstructorOptions, dialog, ipcMain, IpcMainEvent, shell} from 'electron';
|
|
||||||
|
|
||||||
import log from 'electron-log';
|
|
||||||
import {autoUpdater, CancellationToken} from 'electron-updater';
|
|
||||||
import semver from 'semver';
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-magic-numbers
|
|
||||||
const UPDATER_INTERVAL_IN_MS = 48 * 60 * 60 * 1000; // 48 hours
|
|
||||||
|
|
||||||
autoUpdater.log = log;
|
|
||||||
autoUpdater.log.transports.file.level = 'info';
|
|
||||||
|
|
||||||
let updaterModal = null;
|
|
||||||
|
|
||||||
function createEventListener(win: BrowserWindow, eventName: string) {
|
|
||||||
return (event: IpcMainEvent) => {
|
|
||||||
if (event.sender === win.webContents) {
|
|
||||||
win.emit(eventName);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function createUpdaterModal(parentWindow: BrowserWindow, options: {linuxAppIcon: string; notifyOnly: boolean}) {
|
|
||||||
const windowWidth = 480;
|
|
||||||
const windowHeight = 280;
|
|
||||||
const windowOptions: BrowserWindowConstructorOptions = {
|
|
||||||
title: `${app.name} Updater`,
|
|
||||||
parent: parentWindow,
|
|
||||||
modal: true,
|
|
||||||
maximizable: false,
|
|
||||||
show: false,
|
|
||||||
width: windowWidth,
|
|
||||||
height: windowHeight,
|
|
||||||
resizable: false,
|
|
||||||
autoHideMenuBar: true,
|
|
||||||
backgroundColor: '#fff', // prevents blurry text: https://electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do
|
|
||||||
};
|
|
||||||
if (process.platform === 'linux') {
|
|
||||||
windowOptions.icon = options.linuxAppIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
const modal = new BrowserWindow(windowOptions);
|
|
||||||
modal.once('ready-to-show', () => {
|
|
||||||
modal.show();
|
|
||||||
});
|
|
||||||
let updaterURL = (global.isDev ? 'http://localhost:8080' : `file://${app.getAppPath()}`) + '/browser/updater.html';
|
|
||||||
|
|
||||||
if (options.notifyOnly) {
|
|
||||||
updaterURL += '?notifyOnly=true';
|
|
||||||
}
|
|
||||||
modal.loadURL(updaterURL);
|
|
||||||
|
|
||||||
for (const eventName of ['click-release-notes', 'click-skip', 'click-remind', 'click-install', 'click-download', 'click-cancel']) {
|
|
||||||
const listener = createEventListener(modal, eventName);
|
|
||||||
ipcMain.on(eventName, listener);
|
|
||||||
modal.on('closed', () => {
|
|
||||||
ipcMain.removeListener(eventName, listener);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return modal;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isUpdateApplicable(now: Date, skippedVersion, updateInfo) {
|
|
||||||
const releaseTime = new Date(updateInfo.releaseDate).getTime();
|
|
||||||
|
|
||||||
// 48 hours after a new version is added to releases.mattermost.com, user receives a “New update is available” dialog
|
|
||||||
if (now.getTime() - releaseTime < UPDATER_INTERVAL_IN_MS) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If a version was skipped, compare version.
|
|
||||||
if (skippedVersion) {
|
|
||||||
return semver.gt(updateInfo.version, skippedVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function downloadAndInstall(cancellationToken?: CancellationToken) {
|
|
||||||
autoUpdater.on('update-downloaded', () => {
|
|
||||||
global.willAppQuit = true;
|
|
||||||
autoUpdater.quitAndInstall();
|
|
||||||
});
|
|
||||||
autoUpdater.downloadUpdate(cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
function initialize(appState, mainWindow, notifyOnly = false) {
|
|
||||||
autoUpdater.autoDownload = false; // To prevent upgrading on quit
|
|
||||||
const assetsDir = path.resolve(app.getAppPath(), 'assets');
|
|
||||||
autoUpdater.on('error', (err) => {
|
|
||||||
log.error('Error in autoUpdater:', err.message);
|
|
||||||
}).on('update-available', (info) => {
|
|
||||||
let cancellationToken = null;
|
|
||||||
if (isUpdateApplicable(new Date(), appState.skippedVersion, info)) {
|
|
||||||
updaterModal = createUpdaterModal(mainWindow, {
|
|
||||||
linuxAppIcon: path.join(assetsDir, 'appicon.png'),
|
|
||||||
notifyOnly,
|
|
||||||
});
|
|
||||||
updaterModal.on('closed', () => {
|
|
||||||
updaterModal = null;
|
|
||||||
});
|
|
||||||
updaterModal.on('click-skip', () => {
|
|
||||||
appState.skippedVersion = info.version;
|
|
||||||
updaterModal.close();
|
|
||||||
}).on('click-remind', () => {
|
|
||||||
appState.updateCheckedDate = new Date();
|
|
||||||
setTimeout(() => { // eslint-disable-line max-nested-callbacks
|
|
||||||
autoUpdater.checkForUpdates();
|
|
||||||
}, UPDATER_INTERVAL_IN_MS);
|
|
||||||
updaterModal.close();
|
|
||||||
}).on('click-install', () => {
|
|
||||||
updaterModal.webContents.send('start-download');
|
|
||||||
autoUpdater.signals.progress((data) => { // eslint-disable-line max-nested-callbacks
|
|
||||||
updaterModal.send('progress', Math.floor(data.percent));
|
|
||||||
log.info('progress:', data);
|
|
||||||
});
|
|
||||||
cancellationToken = new CancellationToken();
|
|
||||||
downloadAndInstall(cancellationToken);
|
|
||||||
}).on('click-download', () => {
|
|
||||||
shell.openExternal('https://about.mattermost.com/download/#mattermostApps');
|
|
||||||
}).on('click-release-notes', () => {
|
|
||||||
shell.openExternal(`https://github.com/mattermost/desktop/releases/v${info.version}`);
|
|
||||||
}).on('click-cancel', () => {
|
|
||||||
cancellationToken.cancel();
|
|
||||||
updaterModal.close();
|
|
||||||
});
|
|
||||||
updaterModal.focus();
|
|
||||||
} else if (autoUpdater.isManual) {
|
|
||||||
autoUpdater.emit('update-not-available');
|
|
||||||
}
|
|
||||||
}).on('update-not-available', () => {
|
|
||||||
if (autoUpdater.isManual) {
|
|
||||||
dialog.showMessageBox(mainWindow, {
|
|
||||||
type: 'info',
|
|
||||||
buttons: ['Close'],
|
|
||||||
title: 'Your Desktop App is up to date',
|
|
||||||
message: 'You have the latest version of the Mattermost Desktop App.',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
setTimeout(() => {
|
|
||||||
autoUpdater.checkForUpdates();
|
|
||||||
}, UPDATER_INTERVAL_IN_MS);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function shouldCheckForUpdatesOnStart(updateCheckedDate: Date) {
|
|
||||||
if (updateCheckedDate) {
|
|
||||||
if (Date.now() - updateCheckedDate.getTime() < UPDATER_INTERVAL_IN_MS) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkForUpdates(isManual = false) {
|
|
||||||
autoUpdater.isManual = isManual;
|
|
||||||
if (!updaterModal) {
|
|
||||||
autoUpdater.checkForUpdates();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AutoUpdaterConfig {
|
|
||||||
data: {notifyOnly?: boolean};
|
|
||||||
|
|
||||||
constructor() {
|
|
||||||
this.data = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
isNotifyOnly() {
|
|
||||||
if (process.platform === 'win32') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (this.data.notifyOnly === true) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadConfig() {
|
|
||||||
return new AutoUpdaterConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
UPDATER_INTERVAL_IN_MS,
|
|
||||||
checkForUpdates,
|
|
||||||
shouldCheckForUpdatesOnStart,
|
|
||||||
initialize,
|
|
||||||
loadConfig,
|
|
||||||
};
|
|
@@ -274,6 +274,6 @@ export function createTemplate(config: Config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function createMenu(config: Config) {
|
export function createMenu(config: Config) {
|
||||||
// TODO: Electron is enforcing certain variables that it doesn't need
|
// Electron is enforcing certain variables that it doesn't need
|
||||||
return Menu.buildFromTemplate(createTemplate(config) as Array<MenuItemConstructorOptions | MenuItem>);
|
return Menu.buildFromTemplate(createTemplate(config) as Array<MenuItemConstructorOptions | MenuItem>);
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,6 @@ export function createTemplate(config: CombinedConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function createMenu(config: CombinedConfig) {
|
export function createMenu(config: CombinedConfig) {
|
||||||
// TODO: Electron is enforcing certain variables that it doesn't need
|
// Electron is enforcing certain variables that it doesn't need
|
||||||
return Menu.buildFromTemplate(createTemplate(config) as Array<MenuItemConstructorOptions | MenuItem>);
|
return Menu.buildFromTemplate(createTemplate(config) as Array<MenuItemConstructorOptions | MenuItem>);
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@ const defaultOptions = {
|
|||||||
icon: appIconURL,
|
icon: appIconURL,
|
||||||
urgency: 'normal' as Notification['urgency'],
|
urgency: 'normal' as Notification['urgency'],
|
||||||
};
|
};
|
||||||
export const DEFAULT_WIN7 = 'Ding';
|
const DEFAULT_WIN7 = 'Ding';
|
||||||
|
|
||||||
export class Mention extends Notification {
|
export class Mention extends Notification {
|
||||||
customSound: string;
|
customSound: string;
|
||||||
|
@@ -37,11 +37,6 @@ export function getAdjustedWindowBoundaries(width: number, height: number, hasBa
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getLocalURLString(urlPath: string, query?: Map<string, string>, isMain?: boolean) {
|
export function getLocalURLString(urlPath: string, query?: Map<string, string>, isMain?: boolean) {
|
||||||
const localURL = getLocalURL(urlPath, query, isMain);
|
|
||||||
return localURL.href;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getLocalURL(urlPath: string, query?: Map<string, string>, isMain?: boolean) {
|
|
||||||
let pathname;
|
let pathname;
|
||||||
const processPath = isMain ? '' : '/renderer';
|
const processPath = isMain ? '' : '/renderer';
|
||||||
const mode = Utils.runMode();
|
const mode = Utils.runMode();
|
||||||
@@ -61,7 +56,7 @@ export function getLocalURL(urlPath: string, query?: Map<string, string>, isMain
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return localUrl;
|
return localUrl.href;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getLocalPreload(file: string) {
|
export function getLocalPreload(file: string) {
|
||||||
|
@@ -165,7 +165,7 @@ export class MattermostView extends EventEmitter {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
loadRetry = (loadURL: string, err: any) => {
|
loadRetry = (loadURL: string, err: Error) => {
|
||||||
this.retryLoad = setTimeout(this.retry(loadURL), RELOAD_INTERVAL);
|
this.retryLoad = setTimeout(this.retry(loadURL), RELOAD_INTERVAL);
|
||||||
WindowManager.sendToRenderer(LOAD_RETRY, this.tab.name, Date.now() + RELOAD_INTERVAL, err.toString(), loadURL.toString());
|
WindowManager.sendToRenderer(LOAD_RETRY, this.tab.name, Date.now() + RELOAD_INTERVAL, err.toString(), loadURL.toString());
|
||||||
log.info(`[${Util.shorten(this.tab.name)}] failed loading ${loadURL}: ${err}, retrying in ${RELOAD_INTERVAL / SECOND} seconds`);
|
log.info(`[${Util.shorten(this.tab.name)}] failed loading ${loadURL}: ${err}, retrying in ${RELOAD_INTERVAL / SECOND} seconds`);
|
||||||
@@ -211,7 +211,6 @@ export class MattermostView extends EventEmitter {
|
|||||||
hide = () => this.show(false);
|
hide = () => this.show(false);
|
||||||
|
|
||||||
setBounds = (boundaries: Electron.Rectangle) => {
|
setBounds = (boundaries: Electron.Rectangle) => {
|
||||||
// todo: review this, as it might not work properly with devtools/minimizing/resizing
|
|
||||||
this.view.setBounds(boundaries);
|
this.view.setBounds(boundaries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -446,7 +446,7 @@ export class ViewManager {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
sendToAllViews = (channel: string, ...args: any[]) => {
|
sendToAllViews = (channel: string, ...args: unknown[]) => {
|
||||||
this.views.forEach((view) => view.view.webContents.send(channel, ...args));
|
this.views.forEach((view) => view.view.webContents.send(channel, ...args));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -126,7 +126,7 @@ const generateNewWindowListener = (getServersFunction: () => TeamWithTabs[], spe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Public download links case
|
// Public download links case
|
||||||
// TODO: We might be handling different types differently in the future, for now
|
// We might be handling different types differently in the future, for now
|
||||||
// we are going to mimic the browser and just pop a new browser window for public links
|
// we are going to mimic the browser and just pop a new browser window for public links
|
||||||
if (parsedURL.pathname.match(/^(\/api\/v[3-4]\/public)*\/files\//)) {
|
if (parsedURL.pathname.match(/^(\/api\/v[3-4]\/public)*\/files\//)) {
|
||||||
shell.openExternal(details.url);
|
shell.openExternal(details.url);
|
||||||
@@ -218,7 +218,7 @@ export const addWebContentsEventListeners = (mmview: MattermostView, getServersF
|
|||||||
}
|
}
|
||||||
|
|
||||||
const willNavigate = generateWillNavigate(getServersFunction);
|
const willNavigate = generateWillNavigate(getServersFunction);
|
||||||
contents.on('will-navigate', willNavigate as (e: Event, u: string) => void); // TODO: Electron types don't include sender for some reason
|
contents.on('will-navigate', willNavigate as (e: Event, u: string) => void); // Electron types don't include sender for some reason
|
||||||
|
|
||||||
// handle custom login requests (oath, saml):
|
// handle custom login requests (oath, saml):
|
||||||
// 1. are we navigating to a supported local custom login path from the `/login` page?
|
// 1. are we navigating to a supported local custom login path from the `/login` page?
|
||||||
|
@@ -150,8 +150,6 @@ export function getMainWindow(ensureCreated?: boolean) {
|
|||||||
return status.mainWindow;
|
return status.mainWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const on = status.mainWindow?.on;
|
|
||||||
|
|
||||||
function handleMaximizeMainWindow() {
|
function handleMaximizeMainWindow() {
|
||||||
sendToRenderer(MAXIMIZE_CHANGE, true);
|
sendToRenderer(MAXIMIZE_CHANGE, true);
|
||||||
}
|
}
|
||||||
@@ -204,15 +202,6 @@ export function sendToRenderer(channel: string, ...args: any[]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sendToAll(channel: string, ...args: any[]) {
|
|
||||||
sendToRenderer(channel, ...args);
|
|
||||||
if (status.settingsWindow) {
|
|
||||||
status.settingsWindow.webContents.send(channel, ...args);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: should we include popups?
|
|
||||||
}
|
|
||||||
|
|
||||||
export function sendToMattermostViews(channel: string, ...args: any[]) {
|
export function sendToMattermostViews(channel: string, ...args: any[]) {
|
||||||
if (status.viewManager) {
|
if (status.viewManager) {
|
||||||
status.viewManager.sendToAllViews(channel, ...args);
|
status.viewManager.sendToAllViews(channel, ...args);
|
||||||
@@ -321,10 +310,6 @@ export async function setOverlayIcon(badgeText: string | undefined, description:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isMainWindow(window: BrowserWindow) {
|
|
||||||
return status.mainWindow && status.mainWindow === window;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function handleDoubleClick(e: IpcMainEvent, windowType?: string) {
|
export function handleDoubleClick(e: IpcMainEvent, windowType?: string) {
|
||||||
let action = 'Maximize';
|
let action = 'Maximize';
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
@@ -446,11 +431,6 @@ export function updateLoadingScreenDarkMode(darkMode: boolean) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getViewNameByWebContentsId(webContentsId: number) {
|
|
||||||
const view = status.viewManager?.findViewByWebContent(webContentsId);
|
|
||||||
return view?.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getServerNameByWebContentsId(webContentsId: number) {
|
export function getServerNameByWebContentsId(webContentsId: number) {
|
||||||
const view = status.viewManager?.findViewByWebContent(webContentsId);
|
const view = status.viewManager?.findViewByWebContent(webContentsId);
|
||||||
return view?.tab.server.name;
|
return view?.tab.server.name;
|
||||||
@@ -497,7 +477,7 @@ export function sendToFind() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function handleHistory(event: IpcMainEvent, offset: number) {
|
function handleHistory(event: IpcMainEvent, offset: number) {
|
||||||
if (status.viewManager) {
|
if (status.viewManager) {
|
||||||
const activeView = status.viewManager.getCurrentView();
|
const activeView = status.viewManager.getCurrentView();
|
||||||
if (activeView && activeView.view.webContents.canGoToOffset(offset)) {
|
if (activeView && activeView.view.webContents.canGoToOffset(offset)) {
|
||||||
@@ -606,7 +586,8 @@ function handleAppLoggedOut(event: IpcMainEvent, viewName: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleGetViewName(event: IpcMainInvokeEvent) {
|
function handleGetViewName(event: IpcMainInvokeEvent) {
|
||||||
return getViewNameByWebContentsId(event.sender.id);
|
const view = status.viewManager?.findViewByWebContent(event.sender.id);
|
||||||
|
return view?.name;
|
||||||
}
|
}
|
||||||
function handleGetWebContentsId(event: IpcMainInvokeEvent) {
|
function handleGetWebContentsId(event: IpcMainInvokeEvent) {
|
||||||
return event.sender.id;
|
return event.sender.id;
|
||||||
|
@@ -11,7 +11,7 @@ import hello from 'static/sounds/hello.mp3';
|
|||||||
import ripple from 'static/sounds/ripple.mp3';
|
import ripple from 'static/sounds/ripple.mp3';
|
||||||
import upstairs from 'static/sounds/upstairs.mp3';
|
import upstairs from 'static/sounds/upstairs.mp3';
|
||||||
|
|
||||||
export const DEFAULT_WIN7 = 'Ding';
|
const DEFAULT_WIN7 = 'Ding';
|
||||||
const notificationSounds = new Map([
|
const notificationSounds = new Map([
|
||||||
[DEFAULT_WIN7, ding],
|
[DEFAULT_WIN7, ding],
|
||||||
['Bing', bing],
|
['Bing', bing],
|
||||||
|
Reference in New Issue
Block a user