From be721c5bcb0b05d484294cc53bed95ae8a3e2f9e Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:00:54 +0000
Subject: [PATCH 001/275] Create TS compatible version of replaceableComponent
---
src/utils/replaceableComponent.ts | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/utils/replaceableComponent.ts b/src/utils/replaceableComponent.ts
index 8c29fdf037..f83e0c95c1 100644
--- a/src/utils/replaceableComponent.ts
+++ b/src/utils/replaceableComponent.ts
@@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+import { func } from 'prop-types';
import * as React from 'react';
import * as sdk from '../index';
@@ -38,3 +39,12 @@ export function replaceableComponent(name: string, origComponent: React.Componen
// return a falsey value like `null` when the skin doesn't have a component.
return () => sdk.getComponent(name) || origComponent;
}
+
+/**
+ * Typescript-compatible version of `replaceableComponent`
+ * @see replaceableComponent
+ * @param {string} name The dot-path name of the component being replaced.
+ */
+export function replaceableComponentTs(name: string) {
+ return (origComponent: typeof React.Component) => sdk.getComponent(name) || origComponent;
+}
\ No newline at end of file
From 86200e551985e4119f193da7818dd9ecc4c828ae Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:01:16 +0000
Subject: [PATCH 002/275] Convert BridgeTile to Typescript
---
.../views/settings/{BridgeTile.js => BridgeTile.tsx} | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
rename src/components/views/settings/{BridgeTile.js => BridgeTile.tsx} (95%)
diff --git a/src/components/views/settings/BridgeTile.js b/src/components/views/settings/BridgeTile.tsx
similarity index 95%
rename from src/components/views/settings/BridgeTile.js
rename to src/components/views/settings/BridgeTile.tsx
index e9c58518e4..a6b607b01e 100644
--- a/src/components/views/settings/BridgeTile.js
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import React from 'react';
+import React, { ReactNode } from 'react';
import PropTypes from 'prop-types';
import {getHttpUriForMxc} from "matrix-js-sdk/src/content-repo";
import {_t} from "../../../languageHandler";
@@ -23,10 +23,10 @@ import Pill from "../elements/Pill";
import {makeUserPermalink} from "../../../utils/permalinks/Permalinks";
import BaseAvatar from "../avatars/BaseAvatar";
import AccessibleButton from "../elements/AccessibleButton";
-import {replaceableComponent} from "../../../utils/replaceableComponent";
+import {replaceableComponentTs} from "../../../utils/replaceableComponent";
import SettingsStore from "../../../settings/SettingsStore";
-@replaceableComponent("views.settings.BridgeTile")
+@replaceableComponentTs("views.settings.BridgeTile")
export default class BridgeTile extends React.PureComponent {
static propTypes = {
ev: PropTypes.object.isRequired,
@@ -43,7 +43,7 @@ export default class BridgeTile extends React.PureComponent {
});
}
- render() {
+ render(): ReactNode {
const content = this.props.ev.getContent();
const { channel, network, protocol } = content;
const protocolName = protocol.displayname || protocol.id;
From 8e6061b37aebbdc158713d9431e7d5a60b8cbb30 Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:05:30 +0000
Subject: [PATCH 003/275] Ts tweaks
---
src/components/views/settings/BridgeTile.tsx | 33 +++++++++++++-------
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index a6b607b01e..f38e97ee9b 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -25,9 +25,20 @@ import BaseAvatar from "../avatars/BaseAvatar";
import AccessibleButton from "../elements/AccessibleButton";
import {replaceableComponentTs} from "../../../utils/replaceableComponent";
import SettingsStore from "../../../settings/SettingsStore";
+import type {MatrixEvent} from "matrix-js-sdk/src/models/event";
+import { Room } from "matrix-js-sdk/src/models/room";
+
+interface IProps {
+ ev: MatrixEvent;
+ room: Room;
+}
+
+interface IState {
+ visible: boolean;
+}
@replaceableComponentTs("views.settings.BridgeTile")
-export default class BridgeTile extends React.PureComponent {
+export default class BridgeTile extends React.PureComponent {
static propTypes = {
ev: PropTypes.object.isRequired,
room: PropTypes.object.isRequired,
@@ -43,7 +54,7 @@ export default class BridgeTile extends React.PureComponent {
});
}
- render(): ReactNode {
+ render() {
const content = this.props.ev.getContent();
const { channel, network, protocol } = content;
const protocolName = protocol.displayname || protocol.id;
@@ -53,22 +64,22 @@ export default class BridgeTile extends React.PureComponent {
let creator = null;
if (content.creator) {
creator = _t("This bridge was provisioned by .", {}, {
- user: ,
+ user: () => ,
});
}
const bot = _t("This bridge is managed by .", {}, {
- user: ,
+ />,
});
let networkIcon;
@@ -88,7 +99,7 @@ export default class BridgeTile extends React.PureComponent {
url={ avatarUrl }
/>;
} else {
- networkIcon = ;
+ networkIcon = ;
}
const id = this.props.ev.getId();
From 8d203043d40ad6959405b4b115893213ed7b6a16 Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:47:27 +0000
Subject: [PATCH 004/275] Remove hide/show behaviour
---
.../dialogs/_RoomSettingsDialogBridges.scss | 18 ++++-------
src/components/views/settings/BridgeTile.tsx | 32 ++++++-------------
2 files changed, 15 insertions(+), 35 deletions(-)
diff --git a/res/css/views/dialogs/_RoomSettingsDialogBridges.scss b/res/css/views/dialogs/_RoomSettingsDialogBridges.scss
index a1793cc75e..c97a3b69b7 100644
--- a/res/css/views/dialogs/_RoomSettingsDialogBridges.scss
+++ b/res/css/views/dialogs/_RoomSettingsDialogBridges.scss
@@ -89,24 +89,18 @@ limitations under the License.
}
}
- .mx_showMore {
- display: block;
- text-align: left;
- margin-top: 10px;
- }
-
.metadata {
color: $muted-fg-color;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
margin-bottom: 0;
- }
-
- .metadata.visible {
overflow-y: visible;
text-overflow: ellipsis;
white-space: normal;
+ padding: 0;
+
+ > li {
+ padding: 0;
+ border: 0;
+ }
}
}
}
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index f38e97ee9b..ae8faec489 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -33,26 +33,16 @@ interface IProps {
room: Room;
}
-interface IState {
- visible: boolean;
+/**
}
@replaceableComponentTs("views.settings.BridgeTile")
-export default class BridgeTile extends React.PureComponent {
+export default class BridgeTile extends React.PureComponent {
static propTypes = {
ev: PropTypes.object.isRequired,
room: PropTypes.object.isRequired,
}
- state = {
- visible: false,
- }
-
- _toggleVisible() {
- this.setState({
- visible: !this.state.visible,
- });
- }
render() {
const content = this.props.ev.getContent();
@@ -63,24 +53,24 @@ export default class BridgeTile extends React.PureComponent {
let creator = null;
if (content.creator) {
- creator = _t("This bridge was provisioned by .", {}, {
+ creator = {_t("This bridge was provisioned by .", {}, {
user: () => ,
- });
+ })};
}
- const bot = _t("This bridge is managed by .", {}, {
+ const bot = {_t("This bridge is managed by .", {}, {
user: () => ,
- });
+ })};
let networkIcon;
@@ -103,7 +93,6 @@ export default class BridgeTile extends React.PureComponent {
}
const id = this.props.ev.getId();
- const metadataClassname = "metadata" + (this.state.visible ? " visible" : "");
return (
{networkIcon}
@@ -114,12 +103,9 @@ export default class BridgeTile extends React.PureComponent
{
{_t("Workspace: %(networkName)s", {networkName})}
{_t("Channel: %(channelName)s", {channelName})}
-
+
{creator} {bot}
-
-
- { this.state.visible ? _t("Show less") : _t("Show more") }
-
+
);
}
From e448da0bcddb81e43f200dfe8031f9446e61575c Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:47:51 +0000
Subject: [PATCH 005/275] Add interface for event content, and validate
---
src/components/views/settings/BridgeTile.tsx | 32 ++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index ae8faec489..3fb184d828 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -25,7 +25,7 @@ import BaseAvatar from "../avatars/BaseAvatar";
import AccessibleButton from "../elements/AccessibleButton";
import {replaceableComponentTs} from "../../../utils/replaceableComponent";
import SettingsStore from "../../../settings/SettingsStore";
-import type {MatrixEvent} from "matrix-js-sdk/src/models/event";
+import {MatrixEvent} from "matrix-js-sdk/src/models/event";
import { Room } from "matrix-js-sdk/src/models/room";
interface IProps {
@@ -34,6 +34,29 @@ interface IProps {
}
/**
+ * This should match https://github.com/matrix-org/matrix-doc/blob/hs/msc-bridge-inf/proposals/2346-bridge-info-state-event.md#mbridge
+ */
+interface IBridgeStateEvent {
+ bridgebot: string;
+ creator?: string;
+ protocol: {
+ id: string;
+ displayname?: string;
+ avatar_url?: string;
+ external_url?: string;
+ };
+ network?: {
+ id: string;
+ displayname?: string;
+ avatar_url?: string;
+ external_url?: string;
+ };
+ channel: {
+ id: string;
+ displayname?: string;
+ avatar_url?: string;
+ external_url?: string;
+ };
}
@replaceableComponentTs("views.settings.BridgeTile")
@@ -45,7 +68,12 @@ export default class BridgeTile extends React.PureComponent {
render() {
- const content = this.props.ev.getContent();
+ const content: IBridgeStateEvent = this.props.ev.getContent();
+ // Validate
+ if (!content.bridgebot || !content.channel?.id || !content.protocol?.id) {
+ console.warn(`Bridge info event ${this.props.ev.getId()} has missing content. Tile will not render`);
+ return null;
+ }
const { channel, network, protocol } = content;
const protocolName = protocol.displayname || protocol.id;
const channelName = channel.displayname || channel.id;
From d6312606e6e6afd362549670e3b9c98ad9777b21 Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:48:10 +0000
Subject: [PATCH 006/275] Use correct key for avatar
---
src/components/views/settings/BridgeTile.tsx | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index 3fb184d828..f47d47cb40 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -66,7 +66,6 @@ export default class BridgeTile extends React.PureComponent {
room: PropTypes.object.isRequired,
}
-
render() {
const content: IBridgeStateEvent = this.props.ev.getContent();
// Validate
@@ -77,7 +76,6 @@ export default class BridgeTile extends React.PureComponent {
const { channel, network, protocol } = content;
const protocolName = protocol.displayname || protocol.id;
const channelName = channel.displayname || channel.id;
- const networkName = network ? network.displayname || network.id : protocolName;
let creator = null;
if (content.creator) {
@@ -102,10 +100,10 @@ export default class BridgeTile extends React.PureComponent {
let networkIcon;
- if (protocol.avatar) {
+ if (protocol.avatar_url) {
const avatarUrl = getHttpUriForMxc(
MatrixClientPeg.get().getHomeserverUrl(),
- protocol.avatar, 64, 64, "crop",
+ protocol.avatar_url, 64, 64, "crop",
);
networkIcon =
Date: Mon, 30 Nov 2020 12:48:26 +0000
Subject: [PATCH 007/275] Add support for linking to the remote network page
---
src/components/views/settings/BridgeTile.tsx | 23 ++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index f47d47cb40..062fdbeb6e 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -27,6 +27,7 @@ import {replaceableComponentTs} from "../../../utils/replaceableComponent";
import SettingsStore from "../../../settings/SettingsStore";
import {MatrixEvent} from "matrix-js-sdk/src/models/event";
import { Room } from "matrix-js-sdk/src/models/room";
+import { isUrlPermitted } from '../../../HtmlUtils';
interface IProps {
ev: MatrixEvent;
@@ -117,6 +118,22 @@ export default class BridgeTile extends React.PureComponent {
} else {
networkIcon = ;
}
+ let networkItem = null;
+ if (network) {
+ const networkName = network.displayname || network.id;
+ let networkLink = {networkName};
+ if (typeof network.external_url === "string" && isUrlPermitted(network.external_url)) {
+ networkLink = {networkName}
+ }
+ networkItem = _t("Workspace: ", {}, {
+ networkLink: () => networkLink,
+ });
+ }
+
+ let channelLink = {channelName};
+ if (typeof channel.external_url === "string" && isUrlPermitted(channel.external_url)) {
+ channelLink = {channelName}
+ }
const id = this.props.ev.getId();
return (
@@ -126,8 +143,10 @@ export default class BridgeTile extends React.PureComponent {
{protocolName}
- {_t("Workspace: %(networkName)s", {networkName})}
- {_t("Channel: %(channelName)s", {channelName})}
+ {networkItem}
+ {_t("Channel: ", {}, {
+ channelLink: () => channelLink
+ })}
{creator} {bot}
From e7693dc95d7a84ab225f6beb58521c3c278ed447 Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 12:50:57 +0000
Subject: [PATCH 008/275] Update variable in translation files
---
src/i18n/strings/ar.json | 2 +-
src/i18n/strings/cs.json | 4 ++--
src/i18n/strings/de_DE.json | 4 ++--
src/i18n/strings/en_EN.json | 4 ++--
src/i18n/strings/eo.json | 4 ++--
src/i18n/strings/es.json | 4 ++--
src/i18n/strings/et.json | 4 ++--
src/i18n/strings/eu.json | 4 ++--
src/i18n/strings/fi.json | 4 ++--
src/i18n/strings/fr.json | 4 ++--
src/i18n/strings/gl.json | 4 ++--
src/i18n/strings/hu.json | 4 ++--
src/i18n/strings/it.json | 4 ++--
src/i18n/strings/kab.json | 4 ++--
src/i18n/strings/lt.json | 4 ++--
src/i18n/strings/nl.json | 4 ++--
src/i18n/strings/pt_BR.json | 4 ++--
src/i18n/strings/ru.json | 4 ++--
src/i18n/strings/sk.json | 4 ++--
src/i18n/strings/sq.json | 4 ++--
src/i18n/strings/sv.json | 4 ++--
src/i18n/strings/tr.json | 4 ++--
src/i18n/strings/uk.json | 4 ++--
src/i18n/strings/zh_Hans.json | 4 ++--
src/i18n/strings/zh_Hant.json | 4 ++--
25 files changed, 49 insertions(+), 49 deletions(-)
diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json
index 5da09afd23..a58e53555e 100644
--- a/src/i18n/strings/ar.json
+++ b/src/i18n/strings/ar.json
@@ -1056,7 +1056,7 @@
"Failed to upload profile picture!": "تعذَّر رفع صورة الملف الشخصي!",
"Show more": "أظهر أكثر",
"Show less": "أظهر أقل",
- "Channel: %(channelName)s": "قناة: %(channelName)s",
+ "Channel: ": "قناة: %(channelName)s",
"This bridge is managed by .": "هذا الجسر يديره .",
"Upload": "رفع",
"Accept to continue:": "قبول للمتابعة:",
diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json
index 4d9d27363f..c7c09b02a3 100644
--- a/src/i18n/strings/cs.json
+++ b/src/i18n/strings/cs.json
@@ -1753,8 +1753,8 @@
"Review": "Prohlédnout",
"This bridge was provisioned by .": "Toto propojení poskytuje .",
"This bridge is managed by .": "Toto propojení spravuje .",
- "Workspace: %(networkName)s": "Workspace: %(networkName)s",
- "Channel: %(channelName)s": "Kanál: %(channelName)s",
+ "Workspace: ": "Workspace: ",
+ "Channel: ": "Kanál: %(channelName)s",
"Show less": "Skrýt detaily",
"Show more": "Více",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Změna hesla resetuje šifrovací klíče pro všechny vaše relace. Pokud si nejdřív nevyexportujete klíče místností a po změně je znovu neimportujete, nedostanete se k historickým zprávám. V budoucnu se toto zjednoduší.",
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 5d5ca50fc9..0c4eb8dca9 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -1668,8 +1668,8 @@
"Verify yourself & others to keep your chats safe": "Verifiziere dich & andere, um eure Chats zu schützen",
"This bridge was provisioned by .": "Diese Brücke wurde von bereitgestellt.",
"This bridge is managed by .": "Diese Brücke wird von verwaltet.",
- "Workspace: %(networkName)s": "Arbeitsbereich: %(networkName)s",
- "Channel: %(channelName)s": "Kanal: %(channelName)s",
+ "Workspace: ": "Arbeitsbereich: ",
+ "Channel: ": "Kanal: %(channelName)s",
"Show less": "Weniger zeigen",
"Warning: You should only set up key backup from a trusted computer.": "Achtung: Du solltest die Schlüsselsicherung nur auf einem vertrauenswürdigen Gerät einrichten.",
"Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "Melde dich an um die ausschließlich in dieser Sitzung gespeicherten Verschlüsselungsschlüssel wiederherzustellen. Du benötigst sie, um deine verschlüsselten Nachrichten in jeder Sitzung zu lesen.",
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index eb1d0a632e..494909800c 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -955,8 +955,8 @@
"Upload": "Upload",
"This bridge was provisioned by .": "This bridge was provisioned by .",
"This bridge is managed by .": "This bridge is managed by .",
- "Workspace: %(networkName)s": "Workspace: %(networkName)s",
- "Channel: %(channelName)s": "Channel: %(channelName)s",
+ "Workspace: ": "Workspace: ",
+ "Channel: ": "Channel: ",
"Show less": "Show less",
"Show more": "Show more",
"Failed to upload profile picture!": "Failed to upload profile picture!",
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index 3545565fa3..9ea4af86ee 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -1720,7 +1720,7 @@
"They don't match": "Ili ne akordas",
"To be secure, do this in person or use a trusted way to communicate.": "Por plia sekureco, faru tion persone, aŭ uzu alian fidatan komunikilon.",
"Verify yourself & others to keep your chats safe": "Kontrolu vin mem kaj aliajn por sekurigi viajn babilojn",
- "Channel: %(channelName)s": "Kanalo: %(channelName)s",
+ "Channel: ": "Kanalo: %(channelName)s",
"Show less": "Montri malpli",
"Show more": "Montri pli",
"Help": "Helpo",
@@ -1760,7 +1760,7 @@
"Review": "Rekontroli",
"This bridge was provisioned by .": "Ĉi tiu ponto estas provizita de .",
"This bridge is managed by .": "Ĉi tiu ponto estas administrata de .",
- "Workspace: %(networkName)s": "Labortablo: %(networkName)s",
+ "Workspace: ": "Labortablo: ",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Ŝanĝo de pasvorto nuntempe restarigos ĉiujn tutvoje ĉifrajn ŝlosilojn en ĉiuj salutaĵoj, malebligante legadon de ĉifrita historio, malse vi unue elportus la ŝlosilojn de viaj ĉambroj kaj reenportus ilin poste. Ĉi tion ni plibonigos ose.",
"Your homeserver does not support cross-signing.": "Via hejmservilo ne subtenas delegajn subskribojn.",
"Cross-signing and secret storage are enabled.": "Delegaj subskriboj kaj sekreta deponejo estas ŝaltitaj.",
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 34c40800f7..1635284e58 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -1209,8 +1209,8 @@
"Verify": "Verificar",
"Later": "Más tarde",
"Upload": "Subir",
- "Workspace: %(networkName)s": "Espacio de trabajo: %(networkName)s",
- "Channel: %(channelName)s": "Canal: %(channelName)s",
+ "Workspace: ": "Espacio de trabajo: ",
+ "Channel: ": "Canal: %(channelName)s",
"Show less": "Mostrar menos",
"Show more": "Mostrar más",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Cambiar la contraseña reiniciará cualquier clave de encriptación end-to-end en todas las sesiones, haciendo el historial de conversaciones encriptado ilegible, a no ser que primero exportes tus claves de sala y después las reimportes. En un futuro esto será mejorado.",
diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json
index 0b338bd9d4..868d04e0ee 100644
--- a/src/i18n/strings/et.json
+++ b/src/i18n/strings/et.json
@@ -1804,8 +1804,8 @@
"Waiting for your other session to verify…": "Ootan, et sinu teine sessioon alustaks verifitseerimist…",
"This bridge was provisioned by .": "Selle võrgusilla võttis kasutusele .",
"This bridge is managed by .": "Seda võrgusilda haldab .",
- "Workspace: %(networkName)s": "Tööruum: %(networkName)s",
- "Channel: %(channelName)s": "Kanal: %(channelName)s",
+ "Workspace: ": "Tööruum: ",
+ "Channel: ": "Kanal: %(channelName)s",
"Upload new:": "Lae üles uus:",
"Export E2E room keys": "Ekspordi jututubade läbiva krüptimise võtmed",
"Your homeserver does not support cross-signing.": "Sinu koduserver ei toeta risttunnustamist.",
diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json
index 2740ea2079..37deb7e774 100644
--- a/src/i18n/strings/eu.json
+++ b/src/i18n/strings/eu.json
@@ -1805,8 +1805,8 @@
"Verify yourself & others to keep your chats safe": "Egiaztatu zure burua eta besteak txatak seguru mantentzeko",
"Review": "Berrikusi",
"This bridge was provisioned by .": "Zubi hau erabiltzaileak hornitu du.",
- "Workspace: %(networkName)s": "Lan eremua: %(networkName)s",
- "Channel: %(channelName)s": "Kanala: %(channelName)s",
+ "Workspace: ": "Lan eremua: ",
+ "Channel: ": "Kanala: %(channelName)s",
"Show less": "Erakutsi gutxiago",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Pasahitza aldatzean oraingo muturretik muturrerako zifratze gako guztiak ezeztatuko ditu saio guztietan, zifratutako txaten historiala ezin izango da irakurri ez badituzu aurretik zure geletako gakoak esportatzen eta gero berriro inportatzen. Etorkizunean hau hobetuko da.",
"Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Zure kontuak zeharkako sinatze identitate bat du biltegi sekretuan, baina saio honek ez du oraindik fidagarritzat.",
diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json
index 075c1e278a..47f11c2b57 100644
--- a/src/i18n/strings/fi.json
+++ b/src/i18n/strings/fi.json
@@ -1876,8 +1876,8 @@
"Review": "Katselmoi",
"This bridge was provisioned by .": "Tämän sillan tarjoaa käyttäjä .",
"This bridge is managed by .": "Tätä siltaa hallinnoi käyttäjä .",
- "Workspace: %(networkName)s": "Työtila: %(networkName)s",
- "Channel: %(channelName)s": "Kanava: %(channelName)s",
+ "Workspace: ": "Työtila: ",
+ "Channel: ": "Kanava: %(channelName)s",
"Delete %(count)s sessions|other": "Poista %(count)s istuntoa",
"Enable": "Ota käyttöön",
"Backup is not signed by any of your sessions": "Mikään istuntosi ei ole allekirjoittanut varmuuskopiota",
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index efae1f7b26..f1cb24a686 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -1809,8 +1809,8 @@
"They match": "Ils correspondent",
"They don't match": "Ils ne correspondent pas",
"This bridge was provisioned by .": "Cette passerelle a été fournie par .",
- "Workspace: %(networkName)s": "Espace de travail : %(networkName)s",
- "Channel: %(channelName)s": "Canal : %(channelName)s",
+ "Workspace: ": "Espace de travail : ",
+ "Channel: ": "Canal : %(channelName)s",
"Show less": "En voir moins",
"This room is bridging messages to the following platforms. Learn more.": "Ce salon transmet les messages vers les plateformes suivantes. En savoir plus.",
"This room isn’t bridging messages to any platforms. Learn more.": "Ce salon ne transmet les messages à aucune plateforme. En savoir plus.",
diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json
index fec99d1e7c..5afa95e29c 100644
--- a/src/i18n/strings/gl.json
+++ b/src/i18n/strings/gl.json
@@ -1307,8 +1307,8 @@
"Upload": "Subir",
"This bridge was provisioned by .": "Esta ponte está proporcionada por .",
"This bridge is managed by .": "Esta ponte está xestionada por .",
- "Workspace: %(networkName)s": "Espazo de traballo: %(networkName)s",
- "Channel: %(channelName)s": "Canal: %(channelName)s",
+ "Workspace: ": "Espazo de traballo: ",
+ "Channel: ": "Canal: %(channelName)s",
"Show less": "Mostrar menos",
"Show more": "Mostrar máis",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Ao cambiar o contrasinal vas restablecer todas as chaves de cifrado extremo-a-extremo en tódalas sesións, facendo que o historial de conversa cifrado non sexa lexible, a menos que primeiro exportes todas as chaves das salas e as importes posteriormente. No futuro melloraremos o procedemento.",
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index 2739154c19..6ced904206 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -1793,8 +1793,8 @@
"Enable message search in encrypted rooms": "Üzenetek keresésének bekapcsolása a titkosított szobákban",
"Review": "Átnéz",
"This bridge was provisioned by .": "Ezt a hidat az alábbi felhasználó készítette: .",
- "Workspace: %(networkName)s": "Munkahely: %(networkName)s",
- "Channel: %(channelName)s": "Csatorna: %(channelName)s",
+ "Workspace: ": "Munkahely: ",
+ "Channel: ": "Csatorna: %(channelName)s",
"Show less": "Kevesebbet mutat",
"Securely cache encrypted messages locally for them to appear in search results, using ": "A titkosított üzenetek kereséséhez azokat biztonságos módon helyileg kell tárolnod, felhasználva: ",
" to store messages from ": " üzenetek tárolásához ",
diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json
index 4ad806f55e..edb584c894 100644
--- a/src/i18n/strings/it.json
+++ b/src/i18n/strings/it.json
@@ -1797,8 +1797,8 @@
"They don't match": "Non corrispondono",
"Review": "Controlla",
"This bridge was provisioned by .": "Questo bridge è stato fornito da .",
- "Workspace: %(networkName)s": "Spazio di lavoro: %(networkName)s",
- "Channel: %(channelName)s": "Canale: %(channelName)s",
+ "Workspace: ": "Spazio di lavoro: ",
+ "Channel: ": "Canale: %(channelName)s",
"Show less": "Mostra meno",
"Securely cache encrypted messages locally for them to appear in search results, using ": "Tieni in cache localmente i messaggi cifrati in modo sicuro affinché appaiano nei risultati di ricerca, usando ",
" to store messages from ": " per conservare i messaggi da ",
diff --git a/src/i18n/strings/kab.json b/src/i18n/strings/kab.json
index 7a9261f25c..aaeb309edb 100644
--- a/src/i18n/strings/kab.json
+++ b/src/i18n/strings/kab.json
@@ -847,8 +847,8 @@
"Accept to continue:": "Qbel i wakken ad tkemmleḍ:",
"This bridge was provisioned by .": "Tileggit-a tella-d sɣur .",
"This bridge is managed by .": "Tileggit-a tettusefrak sɣur .",
- "Workspace: %(networkName)s": "Tallunt n uxeddim: %(networkName)s",
- "Channel: %(channelName)s": "Abadu: %(channelName)s",
+ "Workspace: ": "Tallunt n uxeddim: ",
+ "Channel: ": "Abadu: %(channelName)s",
"Upload new:": "Asali amaynut:",
"New passwords don't match": "Awalen uffiren imaynuten ur mṣadan ara",
"Passwords can't be empty": "Awalen uffiren ur ilaq ara ad ilin d ilmawen",
diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json
index c1191aa020..756fe77bfd 100644
--- a/src/i18n/strings/lt.json
+++ b/src/i18n/strings/lt.json
@@ -1953,8 +1953,8 @@
"not found in storage": "saugykloje nerasta",
"Cross-signing is not set up.": "Kryžminis pasirašymas nenustatytas.",
"Cross-signing is ready for use.": "Kryžminis pasirašymas yra paruoštas naudoti.",
- "Channel: %(channelName)s": "Kanalas: %(channelName)s",
- "Workspace: %(networkName)s": "Darbo sritis: %(networkName)s",
+ "Channel: ": "Kanalas: %(channelName)s",
+ "Workspace: ": "Darbo sritis: ",
"This bridge is managed by .": "Šis tiltas yra tvarkomas .",
"This bridge was provisioned by .": "Šis tiltas buvo parūpintas .",
"Your server isn't responding to some requests.": "Jūsų serveris neatsako į kai kurias užklausas.",
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 1ec887c364..e09aa82b9a 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -1625,8 +1625,8 @@
"Decline (%(counter)s)": "Afwijzen (%(counter)s)",
"This bridge was provisioned by .": "Dank aan voor de brug.",
"This bridge is managed by .": "Brug onderhouden door .",
- "Workspace: %(networkName)s": "Werkruimte: %(networkName)s",
- "Channel: %(channelName)s": "Kanaal: %(channelName)s",
+ "Workspace: ": "Werkruimte: ",
+ "Channel: ": "Kanaal: %(channelName)s",
"Show less": "Minder tonen",
"Show more": "Meer tonen",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Momenteel stelt een wachtwoordswijziging alle berichtsleutels in alle sessies opnieuw in, en maakt zo oude versleutelde berichten onleesbaar - tenzij u uw sleutels eerst wegschrijft, en na afloop weer inleest. Dit zal verbeterd worden.",
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 613f889370..0c2037e02a 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -1380,8 +1380,8 @@
"Upload": "Enviar",
"This bridge was provisioned by .": "Esta integração foi disponibilizada por .",
"This bridge is managed by .": "Esta integração é desenvolvida por .",
- "Workspace: %(networkName)s": "Espaço de trabalho: %(networkName)s",
- "Channel: %(channelName)s": "Canal: %(channelName)s",
+ "Workspace: ": "Espaço de trabalho: ",
+ "Channel: ": "Canal: %(channelName)s",
"Show less": "Mostrar menos",
"Show more": "Mostrar mais",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Ao mudar a senha, você apagará todas as chaves de criptografia de ponta a ponta existentes em todas as sessões, fazendo com que o histórico de conversas criptografadas fique ilegível, a não ser que você exporte as salas das chaves criptografadas antes de mudar a senha e então as importe novamente depois. No futuro, isso será melhorado.",
diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json
index 3c5ead3aa1..1cda0a288b 100644
--- a/src/i18n/strings/ru.json
+++ b/src/i18n/strings/ru.json
@@ -1670,8 +1670,8 @@
"Decline (%(counter)s)": "Отклонить (%(counter)s)",
"This bridge was provisioned by .": "Этот мост был подготовлен пользователем .",
"This bridge is managed by .": "Этот мост управляется .",
- "Workspace: %(networkName)s": "Рабочая область: %(networkName)s",
- "Channel: %(channelName)s": "Канал: %(channelName)s",
+ "Workspace: ": "Рабочая область: ",
+ "Channel: ": "Канал: %(channelName)s",
"Show less": "Показать меньше",
"Show more": "Показать больше",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Если вы не экспортируете ключи для этой комнаты и не импортируете их в будущем, смена пароля приведёт к сбросу всех ключей сквозного шифрования и сделает невозможным чтение истории чата. В будущем это будет улучшено.",
diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json
index 454d86cb64..7fa8e4dd65 100644
--- a/src/i18n/strings/sk.json
+++ b/src/i18n/strings/sk.json
@@ -1536,8 +1536,8 @@
"Joins room with given address": "Pridať sa do miestnosti s danou adresou",
"Unrecognised room address:": "Nerozpoznaná adresa miestnosti:",
"This bridge is managed by .": "Tento most spravuje .",
- "Workspace: %(networkName)s": "Pracovisko: %(networkName)s",
- "Channel: %(channelName)s": "Kanál: %(channelName)s",
+ "Workspace: ": "Pracovisko: ",
+ "Channel: ": "Kanál: %(channelName)s",
"Show less": "Zobraziť menej",
"Show more": "Zobraziť viac",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Zmena hesla reštartuje všetky šifrovacie kľúče pre všetky vaše relácie. Šifrované správy sa stanú nečitateľnými, pokiaľ najprv nevyexportujete vaše kľúče a po zmene ich nenaimportujete. V budúcnosti sa tento proces zjednoduší.",
diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json
index 74a85031ac..54236054bd 100644
--- a/src/i18n/strings/sq.json
+++ b/src/i18n/strings/sq.json
@@ -1819,8 +1819,8 @@
"To be secure, do this in person or use a trusted way to communicate.": "Për të qenë i sigurt, bëjeni këtë duke qenë vetë i pranishëm ose përdorni për të komunikuar një rrugë të besuar.",
"Verify yourself & others to keep your chats safe": "Verifikoni veten & të tjerët, që t’i mbani bisedat tuaja të sigurta",
"This bridge was provisioned by .": "Kjo urë është dhënë nga .",
- "Workspace: %(networkName)s": "Hapësirë pune: %(networkName)s",
- "Channel: %(channelName)s": "Kanal: %(channelName)s",
+ "Workspace: ": "Hapësirë pune: ",
+ "Channel: ": "Kanal: %(channelName)s",
"Show less": "Shfaq më pak",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Ndryshimi i fjalëkalimit do të sjellë zerimin e çfarëdo kyçesh fshehtëzimi skaj-më-skaj në krejt sesionet, duke e bërë të palexueshëm historikun e fshehtëzuar të bisedave, hiq rastin kur i eksportoni më parë kyçet tuaj të dhomës dhe i ri-importoni ata më pas. Në të ardhmen kjo do të përmirësohet.",
"Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Llogaria juaj ka një identitet cross-signing në depozitë të fshehtë, por s’është ende i besuar në këtë sesion.",
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index 93ff8808cb..307af905e8 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -1692,8 +1692,8 @@
"From %(deviceName)s (%(deviceId)s)": "Från %(deviceName)s (%(deviceId)s)",
"This bridge was provisioned by .": "Den här bryggan tillhandahålls av .",
"This bridge is managed by .": "Den här bryggan tillhandahålls av .",
- "Workspace: %(networkName)s": "Arbetsyta: %(networkName)s",
- "Channel: %(channelName)s": "Kanal: %(channelName)s",
+ "Workspace: ": "Arbetsyta: ",
+ "Channel: ": "Kanal: %(channelName)s",
"Show less": "Visa mindre",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Att byta lösenord återställer just nu alla krypteringsnycklar på alla sessioner, vilket gör krypterad chatthistorik oläslig om du inte först exporterar dina rumsnycklar och sedan importerar dem igen efteråt. Detta kommer att förbättras i framtiden.",
"Your homeserver does not support cross-signing.": "Din hemserver stöder inte korssignering.",
diff --git a/src/i18n/strings/tr.json b/src/i18n/strings/tr.json
index 5a152eeab6..20ebca68a2 100644
--- a/src/i18n/strings/tr.json
+++ b/src/i18n/strings/tr.json
@@ -1410,8 +1410,8 @@
"Other users may not trust it": "Diğer kullanıcılar güvenmeyebilirler",
"Later": "Sonra",
"Review": "Gözden Geçirme",
- "Workspace: %(networkName)s": "Çalışma alanı: %(networkName)s",
- "Channel: %(channelName)s": "Kanal: %(channelName)s",
+ "Workspace: ": "Çalışma alanı: ",
+ "Channel: ": "Kanal: %(channelName)s",
"Show less": "Daha az göster",
"Show more": "Daha fazla göster",
"in memory": "hafızada",
diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json
index eaf8fdbe88..b0efb8ff07 100644
--- a/src/i18n/strings/uk.json
+++ b/src/i18n/strings/uk.json
@@ -955,8 +955,8 @@
"Globe": "Глобус",
"This bridge was provisioned by .": "Цей місток був підготовленим .",
"This bridge is managed by .": "Цей міст керується .",
- "Workspace: %(networkName)s": "Робочий простір: %(networkName)s",
- "Channel: %(channelName)s": "Канал: %(channelName)s",
+ "Workspace: ": "Робочий простір: ",
+ "Channel: ": "Канал: %(channelName)s",
"Show less": "Згорнути",
"Show more": "Розгорнути",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Змінення пароля призведе до скидання всіх ключів наскрізного шифрування та унеможливить читання історії листування, якщо тільки ви не експортуєте ваші ключі кімнати та не імпортуєте їх згодом. Це буде вдосконалено у майбутньому.",
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index 672b1befd1..46edda95dc 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -2320,8 +2320,8 @@
"Uploading logs": "正在上传日志",
"Downloading logs": "正在下载日志",
"This bridge was provisioned by .": "桥接由 准备。",
- "Workspace: %(networkName)s": "工作区:%(networkName)s",
- "Channel: %(channelName)s": "频道:%(channelName)s",
+ "Workspace: ": "工作区:",
+ "Channel: ": "频道:%(channelName)s",
"well formed": "格式正确",
"Master private key:": "主私钥:",
"Self signing private key:": "自签名私钥:",
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index 3355a7d383..3b82222e0e 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -1804,8 +1804,8 @@
"To be secure, do this in person or use a trusted way to communicate.": "為了安全,請親自進行或使用可信的通訊方式。",
"Review": "評論",
"This bridge was provisioned by .": "此橋接是由 設定。",
- "Workspace: %(networkName)s": "工作空間:%(networkName)s",
- "Channel: %(channelName)s": "頻道:%(channelName)s",
+ "Workspace: ": "工作空間:",
+ "Channel: ": "頻道:%(channelName)s",
"Show less": "顯示較少",
"Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "變更密碼將會重設所有工作階段上的所有端到端加密金鑰,讓已加密的聊天歷史無法讀取,除非您先匯出您的聊天室金鑰並在稍後重新匯入。未來會有所改善。",
"Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "您的帳號在秘密儲存空間中有交叉簽章的身份,但尚未被此工作階段信任。",
From da86bc0b0a8a1e497dc88f4a62d84722aefa6033 Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 13:02:04 +0000
Subject: [PATCH 009/275] Allow sender for backwards compat
---
src/components/views/settings/BridgeTile.tsx | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index 062fdbeb6e..67f0eb7802 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -70,10 +70,16 @@ export default class BridgeTile extends React.PureComponent {
render() {
const content: IBridgeStateEvent = this.props.ev.getContent();
// Validate
- if (!content.bridgebot || !content.channel?.id || !content.protocol?.id) {
+ if (!content.channel?.id || !content.protocol?.id) {
console.warn(`Bridge info event ${this.props.ev.getId()} has missing content. Tile will not render`);
return null;
}
+ if (!content.bridgebot) {
+ // Bridgebot was not required previously, so in order to not break rooms we are allowing
+ // the sender to be used in place. When the proposal is merged, this should be removed.
+ console.warn(`Bridge info event ${this.props.ev.getId()} does not provide a 'bridgebot' key which is deprecated behaviour. Using sender for now.`);
+ content.bridgebot = this.props.ev.getSender();
+ }
const { channel, network, protocol } = content;
const protocolName = protocol.displayname || protocol.id;
const channelName = channel.displayname || channel.id;
From 3466813c234eaa41a49d44a901a9089a43d22d26 Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 13:04:50 +0000
Subject: [PATCH 010/275] Remove showmore show less
---
src/i18n/strings/en_EN.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 494909800c..07051ca19e 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -957,8 +957,6 @@
"This bridge is managed by .": "This bridge is managed by .",
"Workspace: ": "Workspace: ",
"Channel: ": "Channel: ",
- "Show less": "Show less",
- "Show more": "Show more",
"Failed to upload profile picture!": "Failed to upload profile picture!",
"Upload new:": "Upload new:",
"No display name": "No display name",
@@ -1520,6 +1518,7 @@
"Jump to first invite.": "Jump to first invite.",
"Show %(count)s more|other": "Show %(count)s more",
"Show %(count)s more|one": "Show %(count)s more",
+ "Show less": "Show less",
"Use default": "Use default",
"All messages": "All messages",
"Mentions & Keywords": "Mentions & Keywords",
@@ -1582,6 +1581,7 @@
"New published address (e.g. #alias:server)": "New published address (e.g. #alias:server)",
"Local Addresses": "Local Addresses",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)",
+ "Show more": "Show more",
"Error updating flair": "Error updating flair",
"There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.",
"Invalid community ID": "Invalid community ID",
From c5e578a50246c435695afb99e68434db702632cc Mon Sep 17 00:00:00 2001
From: Will Hunt
Date: Mon, 30 Nov 2020 13:07:12 +0000
Subject: [PATCH 011/275] linting
---
src/components/views/settings/BridgeTile.tsx | 14 ++++++++++----
src/utils/replaceableComponent.ts | 3 +--
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx
index 67f0eb7802..1f5448dcc1 100644
--- a/src/components/views/settings/BridgeTile.tsx
+++ b/src/components/views/settings/BridgeTile.tsx
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import React, { ReactNode } from 'react';
+import React from 'react';
import PropTypes from 'prop-types';
import {getHttpUriForMxc} from "matrix-js-sdk/src/content-repo";
import {_t} from "../../../languageHandler";
@@ -22,7 +22,6 @@ import {MatrixClientPeg} from "../../../MatrixClientPeg";
import Pill from "../elements/Pill";
import {makeUserPermalink} from "../../../utils/permalinks/Permalinks";
import BaseAvatar from "../avatars/BaseAvatar";
-import AccessibleButton from "../elements/AccessibleButton";
import {replaceableComponentTs} from "../../../utils/replaceableComponent";
import SettingsStore from "../../../settings/SettingsStore";
import {MatrixEvent} from "matrix-js-sdk/src/models/event";
@@ -43,19 +42,25 @@ interface IBridgeStateEvent {
protocol: {
id: string;
displayname?: string;
+ // eslint-disable-next-line camelcase
avatar_url?: string;
+ // eslint-disable-next-line camelcase
external_url?: string;
};
network?: {
id: string;
displayname?: string;
+ // eslint-disable-next-line camelcase
avatar_url?: string;
+ // eslint-disable-next-line camelcase
external_url?: string;
};
channel: {
id: string;
displayname?: string;
+ // eslint-disable-next-line camelcase
avatar_url?: string;
+ // eslint-disable-next-line camelcase
external_url?: string;
};
}
@@ -77,7 +82,8 @@ export default class BridgeTile extends React.PureComponent {
if (!content.bridgebot) {
// Bridgebot was not required previously, so in order to not break rooms we are allowing
// the sender to be used in place. When the proposal is merged, this should be removed.
- console.warn(`Bridge info event ${this.props.ev.getId()} does not provide a 'bridgebot' key which is deprecated behaviour. Using sender for now.`);
+ console.warn(`Bridge info event ${this.props.ev.getId()} does not provide a 'bridgebot' key which`
+ + "is deprecated behaviour. Using sender for now.");
content.bridgebot = this.props.ev.getSender();
}
const { channel, network, protocol } = content;
@@ -151,7 +157,7 @@ export default class BridgeTile extends React.PureComponent {
{networkItem}
{_t("Channel: ", {}, {
- channelLink: () => channelLink
+ channelLink: () => channelLink,
})}
diff --git a/src/utils/replaceableComponent.ts b/src/utils/replaceableComponent.ts
index f83e0c95c1..7ea192f76b 100644
--- a/src/utils/replaceableComponent.ts
+++ b/src/utils/replaceableComponent.ts
@@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import { func } from 'prop-types';
import * as React from 'react';
import * as sdk from '../index';
@@ -47,4 +46,4 @@ export function replaceableComponent(name: string, origComponent: React.Componen
*/
export function replaceableComponentTs(name: string) {
return (origComponent: typeof React.Component) => sdk.getComponent(name) || origComponent;
-}
\ No newline at end of file
+}
From e55ec4359593484bc2e877739cbb51524df6ee85 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 15 Dec 2020 14:45:10 +0100
Subject: [PATCH 012/275] Fix minimized left panel alignment
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/structures/_LeftPanel.scss | 5 +++++
res/css/structures/_UserMenu.scss | 10 +++-------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/res/css/structures/_LeftPanel.scss b/res/css/structures/_LeftPanel.scss
index 1424d9cda0..168590502d 100644
--- a/res/css/structures/_LeftPanel.scss
+++ b/res/css/structures/_LeftPanel.scss
@@ -180,6 +180,11 @@ $groupFilterPanelWidth: 56px; // only applies in this file, used for calculation
.mx_LeftPanel_roomListContainer {
width: 68px;
+ .mx_LeftPanel_userHeader {
+ flex-direction: row;
+ justify-content: center;
+ }
+
.mx_LeftPanel_filterContainer {
// Organize the flexbox into a centered column layout
flex-direction: column;
diff --git a/res/css/structures/_UserMenu.scss b/res/css/structures/_UserMenu.scss
index 84c21364ce..0673ebb058 100644
--- a/res/css/structures/_UserMenu.scss
+++ b/res/css/structures/_UserMenu.scss
@@ -119,14 +119,10 @@ limitations under the License.
}
&.mx_UserMenu_minimized {
- .mx_UserMenu_userHeader {
- .mx_UserMenu_row {
- justify-content: center;
- }
+ padding-right: 0px;
- .mx_UserMenu_userAvatarContainer {
- margin-right: 0;
- }
+ .mx_UserMenu_userAvatarContainer {
+ margin-right: 0px;
}
}
}
From 15d10042eeba2c608a334fbb8d70885fd6733af3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 22 Dec 2020 08:52:21 +0100
Subject: [PATCH 013/275] Fixed 16014
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../room_settings/RoomProfileSettings.js | 60 +++++++++++--------
1 file changed, 36 insertions(+), 24 deletions(-)
diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js
index ca09c3093a..f08860d52b 100644
--- a/src/components/views/room_settings/RoomProfileSettings.js
+++ b/src/components/views/room_settings/RoomProfileSettings.js
@@ -120,17 +120,21 @@ export default class RoomProfileSettings extends React.Component {
};
_onDisplayNameChanged = (e) => {
- this.setState({
- displayName: e.target.value,
- enableProfileSave: true,
- });
+ this.setState({displayName: e.target.value});
+ if (this.state.originalDisplayName === e.target.value) {
+ this.setState({enableProfileSave: false});
+ } else {
+ this.setState({enableProfileSave: true});
+ }
};
_onTopicChanged = (e) => {
- this.setState({
- topic: e.target.value,
- enableProfileSave: true,
- });
+ this.setState({topic: e.target.value});
+ if (this.state.originalTopic === e.target.value) {
+ this.setState({enableProfileSave: false});
+ } else {
+ this.setState({enableProfileSave: true});
+ }
};
_onAvatarChanged = (e) => {
@@ -158,6 +162,29 @@ export default class RoomProfileSettings extends React.Component {
render() {
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
const AvatarSetting = sdk.getComponent('settings.AvatarSetting');
+
+ let profileSettingsButtons;
+ if (this.state.enableProfileSave) {
+ profileSettingsButtons = (
+
+
+ {_t("Cancel")}
+
+
+ {_t("Save")}
+
+
+ );
+ }
+
return (
-
-
- {_t("Cancel")}
-
-
- {_t("Save")}
-
-
+ { profileSettingsButtons }
);
}
From 48cfd3f9da5b8200a902dad94e061666180e9fcf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 22 Dec 2020 09:29:35 +0100
Subject: [PATCH 014/275] Fixed some avatar stuff
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/components/views/room_settings/RoomProfileSettings.js | 1 +
src/components/views/settings/AvatarSetting.js | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js
index f08860d52b..ccbe8e288a 100644
--- a/src/components/views/room_settings/RoomProfileSettings.js
+++ b/src/components/views/room_settings/RoomProfileSettings.js
@@ -62,6 +62,7 @@ export default class RoomProfileSettings extends React.Component {
}
_uploadAvatar = () => {
+ if (!this.state.canSetAvatar) return;
this._avatarUpload.current.click();
};
diff --git a/src/components/views/settings/AvatarSetting.js b/src/components/views/settings/AvatarSetting.js
index 487c752c38..93b982467a 100644
--- a/src/components/views/settings/AvatarSetting.js
+++ b/src/components/views/settings/AvatarSetting.js
@@ -65,7 +65,7 @@ const AvatarSetting = ({avatarUrl, avatarAltText, avatarName, uploadAvatar, remo
const avatarClasses = classNames({
"mx_AvatarSetting_avatar": true,
- "mx_AvatarSetting_avatar_hovering": isHovering,
+ "mx_AvatarSetting_avatar_hovering": isHovering && uploadAvatar,
});
return
{avatarElement}
From ffe2727cf72e2fe305e532a2b70dc904744f5910 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 22 Dec 2020 09:40:39 +0100
Subject: [PATCH 015/275] Fixed topic field resizing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/settings/_ProfileSettings.scss | 6 ++++++
src/components/views/room_settings/RoomProfileSettings.js | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/res/css/views/settings/_ProfileSettings.scss b/res/css/views/settings/_ProfileSettings.scss
index 732cbedf02..4cbcb8e708 100644
--- a/res/css/views/settings/_ProfileSettings.scss
+++ b/res/css/views/settings/_ProfileSettings.scss
@@ -14,6 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+.mx_ProfileSettings_controls_topic {
+ & > textarea {
+ resize: vertical;
+ }
+}
+
.mx_ProfileSettings_profile {
display: flex;
}
diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js
index ccbe8e288a..9d96e6da35 100644
--- a/src/components/views/room_settings/RoomProfileSettings.js
+++ b/src/components/views/room_settings/RoomProfileSettings.js
@@ -200,7 +200,7 @@ export default class RoomProfileSettings extends React.Component {
-
From fa99c2e8c5a4d90385b3b6377169dfb38e972a63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 22 Dec 2020 13:14:55 +0100
Subject: [PATCH 016/275] Hide add button when new item field is empty
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/components/views/elements/EditableItemList.js | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/components/views/elements/EditableItemList.js b/src/components/views/elements/EditableItemList.js
index 34e53906a2..3537d8fad0 100644
--- a/src/components/views/elements/EditableItemList.js
+++ b/src/components/views/elements/EditableItemList.js
@@ -118,15 +118,23 @@ export default class EditableItemList extends React.Component {
};
_renderNewItemField() {
+ let addButton;
+ console.log(this.props.newItem);
+ if (this.props.newItem) {
+ addButton = (
+
+ {_t("Add")}
+
+ );
+ }
+
return (
);
}
From a7ca1d0856cc438190a08f4eb55797c37af7c383 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 22 Dec 2020 13:26:53 +0100
Subject: [PATCH 017/275] Remove unnecessary line
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/components/views/room_settings/RoomProfileSettings.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js
index 9d96e6da35..6904351cad 100644
--- a/src/components/views/room_settings/RoomProfileSettings.js
+++ b/src/components/views/room_settings/RoomProfileSettings.js
@@ -62,7 +62,6 @@ export default class RoomProfileSettings extends React.Component {
}
_uploadAvatar = () => {
- if (!this.state.canSetAvatar) return;
this._avatarUpload.current.click();
};
From 7912091bc5914518ec201710ef2a4beacd1e05c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 29 Dec 2020 16:08:54 +0100
Subject: [PATCH 018/275] Revert "Hide add button when new item field is empty"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit fa99c2e8c5a4d90385b3b6377169dfb38e972a63.
Signed-off-by: Šimon Brandner
---
src/components/views/elements/EditableItemList.js | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/src/components/views/elements/EditableItemList.js b/src/components/views/elements/EditableItemList.js
index 3537d8fad0..34e53906a2 100644
--- a/src/components/views/elements/EditableItemList.js
+++ b/src/components/views/elements/EditableItemList.js
@@ -118,23 +118,15 @@ export default class EditableItemList extends React.Component {
};
_renderNewItemField() {
- let addButton;
- console.log(this.props.newItem);
- if (this.props.newItem) {
- addButton = (
-
- {_t("Add")}
-
- );
- }
-
return (
);
}
From 0083cf56bf3970ca44a8d66f9c90fe89102a45a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Tue, 29 Dec 2020 16:20:43 +0100
Subject: [PATCH 019/275] Hide buttons only if perrmissions are missing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/components/views/room_settings/RoomProfileSettings.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js
index 6904351cad..c76c0823e4 100644
--- a/src/components/views/room_settings/RoomProfileSettings.js
+++ b/src/components/views/room_settings/RoomProfileSettings.js
@@ -164,7 +164,7 @@ export default class RoomProfileSettings extends React.Component {
const AvatarSetting = sdk.getComponent('settings.AvatarSetting');
let profileSettingsButtons;
- if (this.state.enableProfileSave) {
+ if (this.state.canSetTopic && this.state.canSetName) {
profileSettingsButtons = (
Date: Tue, 29 Dec 2020 16:30:20 +0100
Subject: [PATCH 020/275] Disable add button if the field is empty
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/components/views/elements/EditableItemList.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/views/elements/EditableItemList.js b/src/components/views/elements/EditableItemList.js
index 34e53906a2..5a07a400d7 100644
--- a/src/components/views/elements/EditableItemList.js
+++ b/src/components/views/elements/EditableItemList.js
@@ -124,7 +124,7 @@ export default class EditableItemList extends React.Component {
-
+
{_t("Add")}
From 7e0cf5c7832a46243f4b145a06c7ac821eda4e14 Mon Sep 17 00:00:00 2001
From: Travis Ralston
Date: Tue, 29 Dec 2020 12:35:48 -0700
Subject: [PATCH 021/275] Wire up MSC2931 widget navigation
Fixes https://github.com/vector-im/element-web/issues/16006
**Requires https://github.com/matrix-org/matrix-widget-api/pull/27**
---
src/i18n/strings/en_EN.json | 1 +
src/stores/widgets/ElementWidgetActions.ts | 7 +++++++
src/stores/widgets/ElementWidgetCapabilities.ts | 3 +++
src/stores/widgets/StopGapWidgetDriver.ts | 9 +++++++++
src/widgets/CapabilityText.tsx | 3 +++
5 files changed, 23 insertions(+)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index c0939871e2..4dad7a97f1 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -584,6 +584,7 @@
"Send stickers into this room": "Send stickers into this room",
"Send stickers into your active room": "Send stickers into your active room",
"Change which room you're viewing": "Change which room you're viewing",
+ "Change which room you're viewing and use permalinks": "Change which room you're viewing and use permalinks",
"Change the topic of this room": "Change the topic of this room",
"See when the topic changes in this room": "See when the topic changes in this room",
"Change the topic of your active room": "Change the topic of your active room",
diff --git a/src/stores/widgets/ElementWidgetActions.ts b/src/stores/widgets/ElementWidgetActions.ts
index 76390086ab..de48746a74 100644
--- a/src/stores/widgets/ElementWidgetActions.ts
+++ b/src/stores/widgets/ElementWidgetActions.ts
@@ -20,9 +20,16 @@ export enum ElementWidgetActions {
ClientReady = "im.vector.ready",
HangupCall = "im.vector.hangup",
OpenIntegrationManager = "integration_manager_open",
+
+ /**
+ * @deprecated Use MSC2931 instead
+ */
ViewRoom = "io.element.view_room",
}
+/**
+ * @deprecated Use MSC2931 instead
+ */
export interface IViewRoomApiRequest extends IWidgetApiRequest {
data: {
room_id: string; // eslint-disable-line camelcase
diff --git a/src/stores/widgets/ElementWidgetCapabilities.ts b/src/stores/widgets/ElementWidgetCapabilities.ts
index 3f17d27909..e493d5618f 100644
--- a/src/stores/widgets/ElementWidgetCapabilities.ts
+++ b/src/stores/widgets/ElementWidgetCapabilities.ts
@@ -15,5 +15,8 @@
*/
export enum ElementWidgetCapabilities {
+ /**
+ * @deprecated Use MSC2931 instead.
+ */
CanChangeViewedRoom = "io.element.view_room",
}
diff --git a/src/stores/widgets/StopGapWidgetDriver.ts b/src/stores/widgets/StopGapWidgetDriver.ts
index 2d2d1fcbdb..8baea97fe0 100644
--- a/src/stores/widgets/StopGapWidgetDriver.ts
+++ b/src/stores/widgets/StopGapWidgetDriver.ts
@@ -43,6 +43,7 @@ import { EventType } from "matrix-js-sdk/src/@types/event";
import { CHAT_EFFECTS } from "../../effects";
import { containsEmoji } from "../../effects/utils";
import dis from "../../dispatcher/dispatcher";
+import {tryTransformPermalinkToLocalHref} from "../../utils/permalinks/Permalinks";
// TODO: Purge this from the universe
@@ -171,4 +172,12 @@ export class StopGapWidgetDriver extends WidgetDriver {
},
});
}
+
+ public async navigate(uri: string): Promise {
+ const localUri = tryTransformPermalinkToLocalHref(uri);
+ if (!localUri || localUri === uri) { // parse failure can lead to an unmodified URL
+ throw new Error("Failed to transform URI");
+ }
+ window.location.hash = localUri; // it'll just be a fragment
+ }
}
diff --git a/src/widgets/CapabilityText.tsx b/src/widgets/CapabilityText.tsx
index 834ea3ec37..044b7701ba 100644
--- a/src/widgets/CapabilityText.tsx
+++ b/src/widgets/CapabilityText.tsx
@@ -60,6 +60,9 @@ export class CapabilityText {
[ElementWidgetCapabilities.CanChangeViewedRoom]: {
[GENERIC_WIDGET_KIND]: _td("Change which room you're viewing"),
},
+ [MatrixCapabilities.MSC2931Navigate]: {
+ [GENERIC_WIDGET_KIND]: _td("Change which room you're viewing and use permalinks"),
+ },
};
private static stateSendRecvCaps: ISendRecvStaticCapText = {
From 86cb7f99ce910e5f5e58ba872eedc37c43005eba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Wed, 30 Dec 2020 08:46:54 +0100
Subject: [PATCH 022/275] Hide localVideoFeed if video is muted
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/components/views/voip/CallView.tsx | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/components/views/voip/CallView.tsx b/src/components/views/voip/CallView.tsx
index 6748728278..260de4d68a 100644
--- a/src/components/views/voip/CallView.tsx
+++ b/src/components/views/voip/CallView.tsx
@@ -437,6 +437,7 @@ export default class CallView extends React.Component {
}
if (this.props.call.type === CallType.Video) {
+ let localVideoFeed = null;
let onHoldContent = null;
let onHoldBackground = null;
const backgroundStyle: CSSProperties = {};
@@ -455,6 +456,9 @@ export default class CallView extends React.Component {
backgroundStyle.backgroundImage = 'url(' + backgroundAvatarUrl + ')';
onHoldBackground = ;
}
+ if (!this.state.vidMuted) {
+ localVideoFeed = ;
+ }
// if we're fullscreen, we don't want to set a maxHeight on the video element.
const maxVideoHeight = getFullScreenElement() ? null : (
@@ -470,7 +474,7 @@ export default class CallView extends React.Component {
-
+ {localVideoFeed}
{onHoldContent}
{callControls}
;
From 4f96d5dee5fa91bc0d84a65789cb2227adf17999 Mon Sep 17 00:00:00 2001
From: Aaron Raimist
Date: Mon, 4 Jan 2021 19:17:12 -0600
Subject: [PATCH 023/275] Change a bunch of strings from Recovery Key/Phrase to
Security Key/Phrase
Signed-off-by: Aaron Raimist
---
.../dialogs/security/CreateKeyBackupDialog.js | 32 ++++-----
.../security/CreateSecretStorageDialog.js | 8 +--
.../security/NewRecoveryMethodDialog.js | 2 +-
.../security/RecoveryMethodRemovedDialog.js | 2 +-
.../structures/auth/SetupEncryptionBody.js | 4 +-
.../views/dialogs/NewSessionReviewDialog.js | 2 +-
.../security/AccessSecretStorageDialog.js | 6 +-
.../security/RestoreKeyBackupDialog.js | 30 ++++----
.../views/settings/SecureBackupPanel.js | 2 +-
src/i18n/strings/en_EN.json | 70 +++++++++----------
.../dialogs/AccessSecretStorageDialog-test.js | 6 +-
11 files changed, 82 insertions(+), 82 deletions(-)
diff --git a/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js b/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js
index ab39a094db..7b5dbe4d28 100644
--- a/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js
+++ b/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js
@@ -238,7 +238,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
)}
{_t(
"We'll store an encrypted copy of your keys on our server. " +
- "Secure your backup with a recovery passphrase.",
+ "Secure your backup with a Security Phrase.",
)}
{_t("For maximum security, this should be different from your account password.")}
@@ -252,10 +252,10 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
onValidate={this._onPassPhraseValidate}
fieldRef={this._passphraseField}
autoFocus={true}
- label={_td("Enter a recovery passphrase")}
- labelEnterPassword={_td("Enter a recovery passphrase")}
- labelStrongPassword={_td("Great! This recovery passphrase looks strong enough.")}
- labelAllowedButUnsafe={_td("Great! This recovery passphrase looks strong enough.")}
+ label={_td("Enter a Security Phrase")}
+ labelEnterPassword={_td("Enter a Security Phrase")}
+ labelStrongPassword={_td("Great! This Security Phrase looks strong enough.")}
+ labelAllowedButUnsafe={_td("Great! This Security Phrase looks strong enough.")}
/>
@@ -270,7 +270,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
{_t("Advanced")}
- {_t("Set up with a recovery key")}
+ {_t("Set up with a Security Key")}
;
@@ -310,7 +310,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
return