diff --git a/CHANGELOG.md b/CHANGELOG.md index 7719bc65d3..c15c742f92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +Changes in [1.7.31](https://github.com/vector-im/element-web/releases/tag/v1.7.31) (2021-06-21) +=============================================================================================== +[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.31-rc.1...v1.7.31) + + * Upgrade to React SDK 3.24.0 and JS SDK 12.0.0 + +Changes in [1.7.31-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.31-rc.1) (2021-06-15) +========================================================================================================= +[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.30...v1.7.31-rc.1) + + * Upgrade to React SDK 3.24.0-rc.1 and JS SDK 12.0.0-rc.1 + * Translations update from Weblate + [\#17655](https://github.com/vector-im/element-web/pull/17655) + * Upgrade matrix-react-test-utils for React 17 peer deps + [\#17653](https://github.com/vector-im/element-web/pull/17653) + * Fix lint errors in Webpack config + [\#17626](https://github.com/vector-im/element-web/pull/17626) + * Preload only `woff2` fonts + [\#17614](https://github.com/vector-im/element-web/pull/17614) + * ⚛️ Upgrade to React@17 + [\#17601](https://github.com/vector-im/element-web/pull/17601) + Changes in [1.7.30](https://github.com/vector-im/element-web/releases/tag/v1.7.30) (2021-06-07) =============================================================================================== [Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.30-rc.1...v1.7.30) diff --git a/docs/labs.md b/docs/labs.md index 64d57bed6a..1051f29597 100644 --- a/docs/labs.md +++ b/docs/labs.md @@ -7,6 +7,11 @@ to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in **Be warned! Labs features are not finalised, they may be fragile, they may change, they may be dropped. Ask in the room if you are unclear about any details here.** +## Submit Abuse Report to Moderators [MSC3215](https://github.com/matrix-org/matrix-doc/pull/3215) support (`feature_report_to_moderators`) + +A new version of the "Report" dialog that lets users send abuse reports directly to room moderators, +if the room supports it. + ## Matrix Spaces [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) support (`feature_spaces`) Enables showing, using, creating, and managing spaces. Create Spaces from the all new Space Panel (to left of Room List). diff --git a/package.json b/package.json index bb8941b776..403074c3f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "element-web", - "version": "1.7.30", + "version": "1.7.31", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { @@ -91,8 +91,8 @@ "@types/flux": "^3.1.9", "@types/modernizr": "^3.5.3", "@types/node": "^14.14.22", - "@types/react": "^16.9", - "@types/react-dom": "^16.9.10", + "@types/react": "^17.0.2", + "@types/react-dom": "^17.0.2", "@types/sanitize-html": "^2.3.1", "autoprefixer": "^9.8.6", "babel-eslint": "^10.1.0", @@ -149,9 +149,6 @@ "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.2" }, - "resolutions": { - "**/@types/react": "^16.14" - }, "jest": { "testEnvironment": "jest-environment-jsdom-sixteen", "testMatch": [ diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 892ab66cad..358e2f951b 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -11,6 +11,7 @@ "Download Completed": "Download Completed", "Open": "Open", "Dismiss": "Dismiss", + "Switch to space by number": "Switch to space by number", "Open user settings": "Open user settings", "Previous/next recently visited room or community": "Previous/next recently visited room or community", "%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)", diff --git a/src/vector/platform/ElectronPlatform.tsx b/src/vector/platform/ElectronPlatform.tsx index a06516a4d8..6d6c5105d1 100644 --- a/src/vector/platform/ElectronPlatform.tsx +++ b/src/vector/platform/ElectronPlatform.tsx @@ -36,16 +36,24 @@ import { Room } from "matrix-js-sdk/src/models/room"; import Modal from "matrix-react-sdk/src/Modal"; import InfoDialog from "matrix-react-sdk/src/components/views/dialogs/InfoDialog"; import Spinner from "matrix-react-sdk/src/components/views/elements/Spinner"; -import { Categories, Modifiers, registerShortcut } from "matrix-react-sdk/src/accessibility/KeyboardShortcuts"; -import { Key } from "matrix-react-sdk/src/Keyboard"; +import { + Categories, + CMD_OR_CTRL, + DIGITS, + Modifiers, + registerShortcut, +} from "matrix-react-sdk/src/accessibility/KeyboardShortcuts"; +import { isOnlyCtrlOrCmdKeyEvent, Key } from "matrix-react-sdk/src/Keyboard"; import React from "react"; import { randomString } from "matrix-js-sdk/src/randomstring"; import { Action } from "matrix-react-sdk/src/dispatcher/actions"; import { ActionPayload } from "matrix-react-sdk/src/dispatcher/payloads"; +import { SwitchSpacePayload} from "matrix-react-sdk/src/dispatcher/payloads/SwitchSpacePayload"; import { showToast as showUpdateToast } from "matrix-react-sdk/src/toasts/UpdateToast"; import { CheckUpdatesPayload } from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload"; import ToastStore from "matrix-react-sdk/src/stores/ToastStore"; import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast"; +import SettingsStore from 'matrix-react-sdk/src/settings/SettingsStore'; import VectorBasePlatform from './VectorBasePlatform'; @@ -271,6 +279,14 @@ export default class ElectronPlatform extends VectorBasePlatform { }); // register OS-specific shortcuts + registerShortcut(Categories.NAVIGATION, { + keybinds: [{ + modifiers: [CMD_OR_CTRL], + key: DIGITS, + }], + description: _td("Switch to space by number"), + }); + if (isMac) { registerShortcut(Categories.NAVIGATION, { keybinds: [{ @@ -546,9 +562,15 @@ export default class ElectronPlatform extends VectorBasePlatform { }); } - _navigateForwardBack(back: boolean) { + private navigateForwardBack(back: boolean) { this._ipcCall(back ? "navigateBack" : "navigateForward"); } + private navigateToSpace(num: number) { + dis.dispatch({ + action: Action.SwitchSpace, + num, + }); + } onKeyDown(ev: KeyboardEvent): boolean { let handled = false; @@ -557,7 +579,7 @@ export default class ElectronPlatform extends VectorBasePlatform { case Key.SQUARE_BRACKET_LEFT: case Key.SQUARE_BRACKET_RIGHT: if (isMac && ev.metaKey && !ev.altKey && !ev.ctrlKey && !ev.shiftKey) { - this._navigateForwardBack(ev.key === Key.SQUARE_BRACKET_LEFT); + this.navigateForwardBack(ev.key === Key.SQUARE_BRACKET_LEFT); handled = true; } break; @@ -565,7 +587,23 @@ export default class ElectronPlatform extends VectorBasePlatform { case Key.ARROW_LEFT: case Key.ARROW_RIGHT: if (!isMac && ev.altKey && !ev.metaKey && !ev.ctrlKey && !ev.shiftKey) { - this._navigateForwardBack(ev.key === Key.ARROW_LEFT); + this.navigateForwardBack(ev.key === Key.ARROW_LEFT); + handled = true; + } + break; + + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + case "0": + if (SettingsStore.getValue("feature_spaces") && isOnlyCtrlOrCmdKeyEvent(ev)) { + this.navigateToSpace(parseInt(ev.key, 10)); handled = true; } break; diff --git a/yarn.lock b/yarn.lock index 433d599ee4..6586f1468a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1550,21 +1550,27 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== -"@types/react-dom@^16.9.10": - version "16.9.10" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.10.tgz#4485b0bec3d41f856181b717f45fd7831101156f" - integrity sha512-ItatOrnXDMAYpv6G8UCk2VhbYVTjZT9aorLtA/OzDN9XJ2GKcfam68jutoAcILdRjsRUO8qb7AmyObF77Q8QFw== +"@types/react-dom@^17.0.2": + version "17.0.8" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.8.tgz#3180de6d79bf53762001ad854e3ce49f36dd71fc" + integrity sha512-0ohAiJAx1DAUEcY9UopnfwCE9sSMDGnY/oXjWMax6g3RpzmTt2GMyMVAXcbn0mo8XAff0SbQJl2/SBU+hjSZ1A== dependencies: - "@types/react" "^16" + "@types/react" "*" -"@types/react@*", "@types/react@^16", "@types/react@^16.14", "@types/react@^16.9": - version "16.14.2" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c" - integrity sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ== +"@types/react@*", "@types/react@^17.0.2": + version "17.0.11" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.11.tgz#67fcd0ddbf5a0b083a0f94e926c7d63f3b836451" + integrity sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" +"@types/retry@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + "@types/sanitize-html@^2.3.1": version "2.3.1" resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.3.1.tgz#094d696b83b7394b016e96342bbffa6a028795ce" @@ -1572,6 +1578,11 @@ dependencies: htmlparser2 "^6.0.0" +"@types/scheduler@*": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" + integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -7647,9 +7658,9 @@ mathml-tag-names@^2.1.3: resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": - version "11.2.0" - resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/35ecbed29d16982deff27a8c37b05167738225a2" +matrix-js-sdk@12.0.0, "matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": + version "12.0.0" + resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/284e2bb911d2dffeff4c819436d1fde20d56646b" dependencies: "@babel/runtime" "^7.12.5" another-json "^0.2.0" @@ -7657,6 +7668,7 @@ mathml-tag-names@^2.1.3: bs58 "^4.0.1" content-type "^1.0.4" loglevel "^1.7.1" + p-retry "^4.5.0" qs "^6.9.6" request "^2.88.2" unhomoglyph "^1.0.6" @@ -7670,8 +7682,8 @@ matrix-mock-request@^1.2.3: expect "^1.20.2" "matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": - version "3.23.0" - resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/3eca1cbec32c134869069def28fb0d85566607e7" + version "3.24.0" + resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/54c3832b5b9dde5981eb1934f599e7b75eac00e8" dependencies: "@babel/runtime" "^7.12.5" await-lock "^2.1.0" @@ -7698,7 +7710,7 @@ matrix-mock-request@^1.2.3: katex "^0.12.0" linkifyjs "^2.1.9" lodash "^4.17.20" - matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop" + matrix-js-sdk "12.0.0" matrix-widget-api "^0.1.0-beta.14" minimist "^1.2.5" opus-recorder "^8.0.3" @@ -8710,6 +8722,14 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" +p-retry@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.5.0.tgz#6685336b3672f9ee8174d3769a660cb5e488521d" + integrity sha512-5Hwh4aVQSu6BEP+w2zKlVXtFAaYQe1qWuVADSgoeVlLjwe/Q/AMSoRR4MDeaAfu8llT+YNbEijWu/YF3m6avkg== + dependencies: + "@types/retry" "^0.12.0" + retry "^0.12.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"