From 131f499c25828b0c52401ca7556c14b78f23bbbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Sat, 27 Feb 2021 08:04:20 +0100
Subject: [PATCH 001/619] Add Confirm Public Encrypted Room dialog
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../tabs/room/SecurityRoomSettingsTab.js | 25 ++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
index f72e78fa3f..b1be77064a 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
@@ -147,7 +147,7 @@ export default class SecurityRoomSettingsTab extends React.Component {
});
};
- _onRoomAccessRadioToggle = (roomAccess) => {
+ _setRoomAccess = (roomAccess) => {
// join_rule
// INVITE | PUBLIC
// ----------------------+----------------
@@ -191,6 +191,29 @@ export default class SecurityRoomSettingsTab extends React.Component {
console.error(e);
this.setState({guestAccess: beforeGuestAccess});
});
+ }
+
+ _onRoomAccessRadioToggle = async (roomAccess) => {
+ if (
+ this.state.encrypted &&
+ this.state.joinRule != "public" &&
+ roomAccess != "invite_only"
+ ) {
+ Modal.createTrackedDialog('Confirm Public Encrypted Room', '', QuestionDialog, {
+ title: _t('Confirm making this room public?'),
+ description: _t(
+ "Making end-to-end encrypted rooms public renders the " +
+ "encryption pointless, wastes processing power, and can cause " +
+ "performance problems. Please consider creating a separate " +
+ "unencrypted public room.",
+ ),
+ onFinished: (confirm) => {
+ if (confirm) this._setRoomAccess(roomAccess);
+ },
+ });
+ } else {
+ this._setRoomAccess(roomAccess);
+ }
};
_onHistoryRadioToggle = (history) => {
From 0d9bc009689ad2df73cc8a601ca70a4f7c3e2ddd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Sat, 27 Feb 2021 08:04:30 +0100
Subject: [PATCH 002/619] i18n
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/i18n/strings/en_EN.json | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 5bbbdf60b5..10d0b56e7f 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1337,6 +1337,8 @@
"Select the roles required to change various parts of the room": "Select the roles required to change various parts of the room",
"Enable encryption?": "Enable encryption?",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.",
+ "Confirm making this room public?": "Confirm making this room public?",
+ "Making end-to-end encrypted rooms public renders the encryption pointless, wastes processing power, and can cause performance problems. Please consider creating a separate unencrypted public room.": "Making end-to-end encrypted rooms public renders the encryption pointless, wastes processing power, and can cause performance problems. Please consider creating a separate unencrypted public room.",
"Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
"Click here to fix": "Click here to fix",
"To link to this room, please add an address.": "To link to this room, please add an address.",
From 5d6bc9a88663463587768c49495e8c03e8f77a30 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Sun, 28 Feb 2021 08:29:31 +0100
Subject: [PATCH 003/619] Add second Confirm Public Encrypted Room dialog
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../tabs/room/SecurityRoomSettingsTab.js | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
index b1be77064a..e3c23c890c 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
@@ -91,7 +91,24 @@ export default class SecurityRoomSettingsTab extends React.Component {
if (refreshWhenTypes.includes(e.getType())) this.forceUpdate();
};
- _onEncryptionChange = (e) => {
+ _onEncryptionChange = async (e) => {
+ if (this.state.joinRule == "public") {
+ const {finished} = Modal.createTrackedDialog('Confirm Public Encrypted Room', '', QuestionDialog, {
+ title: _t('Enable encryption in a public room?'),
+ description: _t(
+ "Note that enabling encryption in public rooms renders the " +
+ "encryption pointless, wastes processing power, and can cause " +
+ "performance problems. Please consider creating a separate " +
+ "encrypted room.",
+ ),
+ });
+ const [confirm] = await finished;
+ if (!confirm) {
+ this.setState({encrypted: false});
+ return;
+ }
+ }
+
Modal.createTrackedDialog('Enable encryption', '', QuestionDialog, {
title: _t('Enable encryption?'),
description: _t(
From 5a55b0dcf03e1a86a1a5eb3a33a9664b186d75bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Sun, 28 Feb 2021 08:29:37 +0100
Subject: [PATCH 004/619] i18n
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/i18n/strings/en_EN.json | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 10d0b56e7f..42ad88c01e 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1335,6 +1335,8 @@
"Roles & Permissions": "Roles & Permissions",
"Permissions": "Permissions",
"Select the roles required to change various parts of the room": "Select the roles required to change various parts of the room",
+ "Enable encryption in a public room?": "Enable encryption in a public room?",
+ "Note that enabling encryption in public rooms renders the encryption pointless, wastes processing power, and can cause performance problems. Please consider creating a separate encrypted room.": "Note that enabling encryption in public rooms renders the encryption pointless, wastes processing power, and can cause performance problems. Please consider creating a separate encrypted room.",
"Enable encryption?": "Enable encryption?",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.",
"Confirm making this room public?": "Confirm making this room public?",
From 24428783f53dfe88b79477374cc8f34e88fc98c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Sun, 28 Feb 2021 09:54:05 +0100
Subject: [PATCH 005/619] Remove unnecessary async
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../views/settings/tabs/room/SecurityRoomSettingsTab.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
index e3c23c890c..ccc5470265 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.js
@@ -210,7 +210,7 @@ export default class SecurityRoomSettingsTab extends React.Component {
});
}
- _onRoomAccessRadioToggle = async (roomAccess) => {
+ _onRoomAccessRadioToggle = (roomAccess) => {
if (
this.state.encrypted &&
this.state.joinRule != "public" &&
From 6a5ea970e940bb53671103fe222f0d2220db114b Mon Sep 17 00:00:00 2001
From: Panagiotis <27917356+panoschal@users.noreply.github.com>
Date: Sat, 13 Mar 2021 15:20:42 +0200
Subject: [PATCH 006/619] fix: make call area smaller on small screens
so that it doesn't need a scrollbar
---
res/css/views/voip/_CallView.scss | 3 +++
1 file changed, 3 insertions(+)
diff --git a/res/css/views/voip/_CallView.scss b/res/css/views/voip/_CallView.scss
index 7eb329594a..4ade5d90f8 100644
--- a/res/css/views/voip/_CallView.scss
+++ b/res/css/views/voip/_CallView.scss
@@ -30,6 +30,9 @@ limitations under the License.
.mx_CallView_voice {
height: 360px;
+ @media only screen and (max-height: 768px) {
+ height: 300px;
+ }
}
}
From 879dd6eaeac1c91c66ed9329e382c830ad92cd21 Mon Sep 17 00:00:00 2001
From: Panagiotis <27917356+panoschal@users.noreply.github.com>
Date: Sat, 13 Mar 2021 15:24:26 +0200
Subject: [PATCH 007/619] fix: make status bar area not show when it is
undefined
e.g. when user is in call, and there are search results
---
src/components/structures/RoomView.tsx | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/components/structures/RoomView.tsx b/src/components/structures/RoomView.tsx
index 706cd5ded8..2fdb193389 100644
--- a/src/components/structures/RoomView.tsx
+++ b/src/components/structures/RoomView.tsx
@@ -1841,6 +1841,17 @@ export default class RoomView extends React.Component {
/>;
}
+ const statusBarAreaClass = classNames("mx_RoomView_statusArea", {
+ "mx_RoomView_statusArea_expanded": isStatusAreaExpanded,
+ });
+
+ const statusBarArea = statusBar &&
;
@@ -2101,9 +2101,9 @@ export default class RoomView extends React.Component {
{ messagePanel }
{ searchResultsPanel }
- {statusBarArea}
- {previewBar}
- {messageComposer}
+ { statusBarArea }
+ { previewBar }
+ { messageComposer }
From 40ead34c082875d3ec91ad2ab850be09ce73fcae Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Mon, 26 Jul 2021 17:41:39 +0100
Subject: [PATCH 039/619] Add test for textForPinnedEvent
Signed-off-by: Paulo Pinto
---
test/TextForEvent-test.ts | 43 ++++++++++++++++++++
test/__snapshots__/TextForEvent-test.ts.snap | 17 ++++++++
2 files changed, 60 insertions(+)
create mode 100644 test/TextForEvent-test.ts
create mode 100644 test/__snapshots__/TextForEvent-test.ts.snap
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
new file mode 100644
index 0000000000..fdfb1c5711
--- /dev/null
+++ b/test/TextForEvent-test.ts
@@ -0,0 +1,43 @@
+import './skinned-sdk';
+
+import { textForEvent } from "../src/TextForEvent";
+import { MatrixEvent } from "matrix-js-sdk";
+import SettingsStore from "../src/settings/SettingsStore";
+import { SettingLevel } from "../src/settings/SettingLevel";
+import renderer from 'react-test-renderer';
+
+function mockPinnedEvent(
+ pinnedMessageIds?: string[],
+ prevPinnedMessageIds?: string[],
+): MatrixEvent {
+ return new MatrixEvent({
+ type: "m.room.pinned_events",
+ state_key: "",
+ sender: "@foo:example.com",
+ content: {
+ pinned: pinnedMessageIds,
+ },
+ prev_content: {
+ pinned: prevPinnedMessageIds,
+ },
+ });
+}
+
+describe("TextForPinnedEvent", () => {
+ SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
+
+ it("should mention sender", () => {
+ const event = mockPinnedEvent();
+ expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
+ });
+});
+
+describe("TextForPinnedEvent (JSX)", () => {
+ SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
+
+ it("should mention sender", () => {
+ const event = mockPinnedEvent();
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+});
diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/__snapshots__/TextForEvent-test.ts.snap
new file mode 100644
index 0000000000..78fd0910b8
--- /dev/null
+++ b/test/__snapshots__/TextForEvent-test.ts.snap
@@ -0,0 +1,17 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`TextForPinnedEvent (JSX) should mention sender 1`] = `
+
+
+ @foo:example.com changed the
+
+
+ pinned messages
+
+
+ for the room.
+
+
+`;
From 8fe7df91714d995e7ad3c61e147ec9a7e0494824 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Tue, 27 Jul 2021 15:37:05 +0100
Subject: [PATCH 040/619] When a single message is pinned, link to it
Signed-off-by: Paulo Pinto
---
src/TextForEvent.tsx | 44 ++++++++++++++++++++
src/i18n/strings/en_EN.json | 1 +
test/TextForEvent-test.ts | 34 ++++++++++++---
test/__snapshots__/TextForEvent-test.ts.snap | 42 ++++++++++++++++++-
4 files changed, 114 insertions(+), 7 deletions(-)
diff --git a/src/TextForEvent.tsx b/src/TextForEvent.tsx
index 7bad8eb50e..17fede0d21 100644
--- a/src/TextForEvent.tsx
+++ b/src/TextForEvent.tsx
@@ -408,6 +408,15 @@ function textForPowerEvent(event: MatrixEvent): () => string | null {
});
}
+const onPinnedOrUnpinnedMessageClick = (messageId: string, roomId: string): void => {
+ defaultDispatcher.dispatch({
+ action: 'view_room',
+ event_id: messageId,
+ highlighted: true,
+ room_id: roomId,
+ });
+};
+
const onPinnedMessagesClick = (): void => {
defaultDispatcher.dispatch({
action: Action.SetRightPanelPhase,
@@ -420,6 +429,41 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
if (!SettingsStore.getValue("feature_pinning")) return null;
const senderName = event.sender ? event.sender.name : event.getSender();
+ const pinned = event.getContent().pinned ?? [];
+ const previouslyPinned = event.getPrevContent().pinned ?? [];
+ const newlyPinned = pinned.filter(item => previouslyPinned.indexOf(item) < 0);
+
+ if (newlyPinned.length === 1) {
+ // A single message was pinned, include a link to that message.
+ if (allowJSX) {
+ const messageId = newlyPinned.pop();
+ const roomId = event.getRoomId();
+
+ return () => (
+
+ {
+ _t(
+ "%(senderName)s pinned a message to this room. See all pinned messages.",
+ { senderName },
+ {
+ "a": (sub) =>
+ onPinnedOrUnpinnedMessageClick(messageId, roomId)}>
+ { sub }
+ ,
+ "b": (sub) =>
+
+ { sub }
+ ,
+ },
+ )
+ }
+
+ );
+ }
+
+ return () => _t("%(senderName)s pinned a message to this room. See all pinned messages.", { senderName });
+ }
+
if (allowJSX) {
return () => (
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 0ca7b9da9e..eb390afb32 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -545,6 +545,7 @@
"%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s made future room history visible to unknown (%(visibility)s).",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
+ "%(senderName)s pinned a message to this room. See all pinned messages.": "%(senderName)s pinned a message to this room. See all pinned messages.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s",
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index fdfb1c5711..91c99c7048 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -23,20 +23,42 @@ function mockPinnedEvent(
});
}
-describe("TextForPinnedEvent", () => {
+describe("TextForPinnedEvent - newly pinned message(s)", () => {
SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
- it("should mention sender", () => {
- const event = mockPinnedEvent();
+ it("mentions message when a single message was pinned, with no previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-1']);
+ expect(textForEvent(event)).toBe("@foo:example.com pinned a message to this room. See all pinned messages.");
+ });
+
+ it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
+ expect(textForEvent(event)).toBe("@foo:example.com pinned a message to this room. See all pinned messages.");
+ });
+
+ it("shows generic text when multiple messages were pinned", () => {
+ const event = mockPinnedEvent(['message-2', 'message-3'], ['message-1']);
expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
});
});
-describe("TextForPinnedEvent (JSX)", () => {
+describe("TextForPinnedEvent - newly pinned message(s) (JSX)", () => {
SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
- it("should mention sender", () => {
- const event = mockPinnedEvent();
+ it("mentions message when a single message was pinned, with no previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-1']);
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("shows generic text when multiple messages were pinned", () => {
+ const event = mockPinnedEvent(['message-2', 'message-3'], ['message-1']);
const component = renderer.create(textForEvent(event, true));
expect(component.toJSON()).toMatchSnapshot();
});
diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/__snapshots__/TextForEvent-test.ts.snap
index 78fd0910b8..41ccbc0857 100644
--- a/test/__snapshots__/TextForEvent-test.ts.snap
+++ b/test/__snapshots__/TextForEvent-test.ts.snap
@@ -1,6 +1,46 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`TextForPinnedEvent (JSX) should mention sender 1`] = `
+exports[`TextForPinnedEvent - newly pinned message(s) (JSX) mentions message when a single message was pinned, with multiple previously pinned messages 1`] = `
+
+
+ @foo:example.com pinned
+
+ a message
+
+ to this room. See all
+
+ pinned messages
+
+ .
+
+
+`;
+
+exports[`TextForPinnedEvent - newly pinned message(s) (JSX) mentions message when a single message was pinned, with no previously pinned messages 1`] = `
+
+
+ @foo:example.com pinned
+
+ a message
+
+ to this room. See all
+
+ pinned messages
+
+ .
+
+
+`;
+
+exports[`TextForPinnedEvent - newly pinned message(s) (JSX) shows generic text when multiple messages were pinned 1`] = `
@foo:example.com changed the
From 3f2dadf0fe226d572333653c845049cbb6610800 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Tue, 27 Jul 2021 16:58:53 +0100
Subject: [PATCH 041/619] When a single message is unpinned, link to it
Signed-off-by: Paulo Pinto
---
src/TextForEvent.tsx | 33 +++++++++++-
src/i18n/strings/en_EN.json | 1 +
test/TextForEvent-test.ts | 45 +++++++++++++++-
test/__snapshots__/TextForEvent-test.ts.snap | 56 ++++++++++++++++++++
4 files changed, 132 insertions(+), 3 deletions(-)
diff --git a/src/TextForEvent.tsx b/src/TextForEvent.tsx
index 17fede0d21..1033ac9fd8 100644
--- a/src/TextForEvent.tsx
+++ b/src/TextForEvent.tsx
@@ -428,16 +428,17 @@ const onPinnedMessagesClick = (): void => {
function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string | JSX.Element | null {
if (!SettingsStore.getValue("feature_pinning")) return null;
const senderName = event.sender ? event.sender.name : event.getSender();
+ const roomId = event.getRoomId();
const pinned = event.getContent().pinned ?? [];
const previouslyPinned = event.getPrevContent().pinned ?? [];
const newlyPinned = pinned.filter(item => previouslyPinned.indexOf(item) < 0);
+ const newlyUnpinned = previouslyPinned.filter(item => pinned.indexOf(item) < 0);
if (newlyPinned.length === 1) {
// A single message was pinned, include a link to that message.
if (allowJSX) {
const messageId = newlyPinned.pop();
- const roomId = event.getRoomId();
return () => (
@@ -464,6 +465,36 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
return () => _t("%(senderName)s pinned a message to this room. See all pinned messages.", { senderName });
}
+ if (newlyUnpinned.length === 1) {
+ // A single message was unpinned, include a link to that message.
+ if (allowJSX) {
+ const messageId = newlyUnpinned.pop();
+
+ return () => (
+
+ {
+ _t(
+ "%(senderName)s unpinned a message from this room. See all pinned messages.",
+ { senderName },
+ {
+ "a": (sub) =>
+ onPinnedOrUnpinnedMessageClick(messageId, roomId)}>
+ { sub }
+ ,
+ "b": (sub) =>
+
+ { sub }
+ ,
+ },
+ )
+ }
+
+ );
+ }
+
+ return () => _t("%(senderName)s unpinned a message from this room. See all pinned messages.", { senderName });
+ }
+
if (allowJSX) {
return () => (
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index eb390afb32..91325444c3 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -546,6 +546,7 @@
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
"%(senderName)s pinned a message to this room. See all pinned messages.": "%(senderName)s pinned a message to this room. See all pinned messages.",
+ "%(senderName)s unpinned a message from this room. See all pinned messages.": "%(senderName)s unpinned a message from this room. See all pinned messages.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s",
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index 91c99c7048..d8c708eea3 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -37,7 +37,7 @@ describe("TextForPinnedEvent - newly pinned message(s)", () => {
});
it("shows generic text when multiple messages were pinned", () => {
- const event = mockPinnedEvent(['message-2', 'message-3'], ['message-1']);
+ const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
});
});
@@ -58,7 +58,48 @@ describe("TextForPinnedEvent - newly pinned message(s) (JSX)", () => {
});
it("shows generic text when multiple messages were pinned", () => {
- const event = mockPinnedEvent(['message-2', 'message-3'], ['message-1']);
+ const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+});
+
+describe("TextForPinnedEvent - newly unpinned message(s)", () => {
+ SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
+
+ it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
+ const event = mockPinnedEvent([], ['message-1']);
+ expect(textForEvent(event)).toBe("@foo:example.com unpinned a message from this room. See all pinned messages.");
+ });
+
+ it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
+ expect(textForEvent(event)).toBe("@foo:example.com unpinned a message from this room. See all pinned messages.");
+ });
+
+ it("shows generic text when multiple messages were unpinned", () => {
+ const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
+ expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
+ });
+});
+
+describe("TextForPinnedEvent - newly unpinned message(s) (JSX)", () => {
+ SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
+
+ it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
+ const event = mockPinnedEvent([], ['message-1']);
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("shows generic text when multiple messages were unpinned", () => {
+ const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
const component = renderer.create(textForEvent(event, true));
expect(component.toJSON()).toMatchSnapshot();
});
diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/__snapshots__/TextForEvent-test.ts.snap
index 41ccbc0857..124f7e0663 100644
--- a/test/__snapshots__/TextForEvent-test.ts.snap
+++ b/test/__snapshots__/TextForEvent-test.ts.snap
@@ -55,3 +55,59 @@ exports[`TextForPinnedEvent - newly pinned message(s) (JSX) shows generic text w
`;
+
+exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message when a single message was unpinned, with a single message previously pinned 1`] = `
+
+
+ @foo:example.com unpinned
+
+ a message
+
+ from this room. See all
+
+ pinned messages
+
+ .
+
+
+`;
+
+exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message when a single message was unpinned, with multiple previously pinned messages 1`] = `
+
+
+ @foo:example.com unpinned
+
+ a message
+
+ from this room. See all
+
+ pinned messages
+
+ .
+
+
+`;
+
+exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) shows generic text when multiple messages were unpinned 1`] = `
+
+
+ @foo:example.com changed the
+
+
+ pinned messages
+
+
+ for the room.
+
+
+`;
From 400e772594b35898e5aa5a2df1d18e7faad46226 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Tue, 27 Jul 2021 17:53:33 +0100
Subject: [PATCH 042/619] Fix formatting
Signed-off-by: Paulo Pinto
---
test/TextForEvent-test.ts | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index d8c708eea3..0b3b73613a 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -69,12 +69,16 @@ describe("TextForPinnedEvent - newly unpinned message(s)", () => {
it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
const event = mockPinnedEvent([], ['message-1']);
- expect(textForEvent(event)).toBe("@foo:example.com unpinned a message from this room. See all pinned messages.");
+ expect(textForEvent(event)).toBe(
+ "@foo:example.com unpinned a message from this room. See all pinned messages.",
+ );
});
it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
- expect(textForEvent(event)).toBe("@foo:example.com unpinned a message from this room. See all pinned messages.");
+ expect(textForEvent(event)).toBe(
+ "@foo:example.com unpinned a message from this room. See all pinned messages.",
+ );
});
it("shows generic text when multiple messages were unpinned", () => {
From 6c945ee4ed2999bd68a32798a3f3869111ac3e45 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Tue, 27 Jul 2021 17:58:19 +0100
Subject: [PATCH 043/619] Add missing translations
Signed-off-by: Paulo Pinto
---
src/i18n/strings/en_EN.json | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 91325444c3..1fc9689a58 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -546,7 +546,9 @@
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
"%(senderName)s pinned a message to this room. See all pinned messages.": "%(senderName)s pinned a message to this room. See all pinned messages.",
+ "%(senderName)s pinned a message to this room. See all pinned messages.": "%(senderName)s pinned a message to this room. See all pinned messages.",
"%(senderName)s unpinned a message from this room. See all pinned messages.": "%(senderName)s unpinned a message from this room. See all pinned messages.",
+ "%(senderName)s unpinned a message from this room. See all pinned messages.": "%(senderName)s unpinned a message from this room. See all pinned messages.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s changed the pinned messages for the room.",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s",
From 9ec4507da57b37e630906a45a2103650fbc74642 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Wed, 28 Jul 2021 16:49:03 +0200
Subject: [PATCH 044/619] Update copy
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../tabs/room/SecurityRoomSettingsTab.tsx | 18 +++++++++---------
src/i18n/strings/en_EN.json | 4 ++--
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
index 214a0b69ef..e03b6f592f 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
@@ -137,11 +137,11 @@ export default class SecurityRoomSettingsTab extends React.Component
{ _t(
- " It’s not recommended to turn on encryption on for public rooms. " +
- "Anyone can find and join public rooms, so anyone can read messages. You’ll " +
- "get none of the benefits of encryption, and you won't be able to turn it " +
- "off later. Encrypting messages in a public room will also likely make " +
- "receiving and sending messages slower than necessary.",
+ " It’s not recommended to add encryption to public rooms. " +
+ "Anyone can find and join public rooms, so anyone can read messages in them. " +
+ "You’ll get none of the benefits of encryption, and you won’t be able to turn it " +
+ "off later. Encrypting messages in a public room will make receiving and sending " +
+ "messages slower.",
null,
{ "b": (sub) => { sub } },
) }
@@ -236,10 +236,10 @@ export default class SecurityRoomSettingsTab extends React.Component
{ _t(
- " It’s not recommended to make end-to-end encrypted rooms public. It " +
- "means anyone can find and join this room, so anyone can read messages. You’ll " +
- "get none of the benefits of encryption. Encrypting messages in a public room " +
- "will also likely make receiving and sending messages slower than necessary.",
+ " It’s not recommended to make encrypted rooms public. It " +
+ "It will mean anyone can find and join the room, so anyone can read messages. " +
+ "You’ll get none of the benefits of encryption. Encrypting messages in a public " +
+ "room will make receiving and sending messages slower.",
null,
{ "b": (sub) => { sub } },
) }
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 2ab0ea56a4..fc97f9d0ec 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1427,13 +1427,13 @@
"Permissions": "Permissions",
"Select the roles required to change various parts of the room": "Select the roles required to change various parts of the room",
"Are you sure you want to add encryption to this public room?": "Are you sure you want to add encryption to this public room?",
- " It’s not recommended to turn on encryption on for public rooms. Anyone can find and join public rooms, so anyone can read messages. You’ll get none of the benefits of encryption, and you won't be able to turn it off later. Encrypting messages in a public room will also likely make receiving and sending messages slower than necessary.": " It’s not recommended to turn on encryption on for public rooms. Anyone can find and join public rooms, so anyone can read messages. You’ll get none of the benefits of encryption, and you won't be able to turn it off later. Encrypting messages in a public room will also likely make receiving and sending messages slower than necessary.",
+ " It’s not recommended to add encryption to public rooms. Anyone can find and join public rooms, so anyone can read messages in them. You’ll get none of the benefits of encryption, and you won’t be able to turn it off later. Encrypting messages in a public room will make receiving and sending messages slower.": " It’s not recommended to add encryption to public rooms. Anyone can find and join public rooms, so anyone can read messages in them. You’ll get none of the benefits of encryption, and you won’t be able to turn it off later. Encrypting messages in a public room will make receiving and sending messages slower.",
"To avoid these issues, create a new private encrypted room for the conversation you plan to have.": "To avoid these issues, create a new private encrypted room for the conversation you plan to have.",
"Enable encryption?": "Enable encryption?",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.",
"This upgrade will allow members of selected spaces access to this room without an invite.": "This upgrade will allow members of selected spaces access to this room without an invite.",
"Are you sure you want to make this encrypted room public?": "Are you sure you want to make this encrypted room public?",
- " It’s not recommended to make end-to-end encrypted rooms public. It means anyone can find and join this room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will also likely make receiving and sending messages slower than necessary.": " It’s not recommended to make end-to-end encrypted rooms public. It means anyone can find and join this room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will also likely make receiving and sending messages slower than necessary.",
+ " It’s not recommended to make encrypted rooms public. It It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.": " It’s not recommended to make encrypted rooms public. It It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.",
"To avoid these issues, create a new public room for the conversation you plan to have.": "To avoid these issues, create a new public room for the conversation you plan to have.",
"To link to this room, please add an address.": "To link to this room, please add an address.",
"Private (invite only)": "Private (invite only)",
From 168a32902e8da185184fef34722936e144c45076 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Wed, 28 Jul 2021 16:50:40 +0200
Subject: [PATCH 045/619] Remove additional word
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../views/settings/tabs/room/SecurityRoomSettingsTab.tsx | 2 +-
src/i18n/strings/en_EN.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
index e03b6f592f..7def68448f 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
@@ -146,7 +146,7 @@ export default class SecurityRoomSettingsTab extends React.Component { sub } },
) }
{ _t(
- " It’s not recommended to make encrypted rooms public. It " +
+ " It’s not recommended to make encrypted rooms public. " +
"It will mean anyone can find and join the room, so anyone can read messages. " +
"You’ll get none of the benefits of encryption. Encrypting messages in a public " +
"room will make receiving and sending messages slower.",
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index a00a8e1c9b..f20d7db6c8 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1433,7 +1433,7 @@
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.",
"This upgrade will allow members of selected spaces access to this room without an invite.": "This upgrade will allow members of selected spaces access to this room without an invite.",
"Are you sure you want to make this encrypted room public?": "Are you sure you want to make this encrypted room public?",
- " It’s not recommended to make encrypted rooms public. It It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.": " It’s not recommended to make encrypted rooms public. It It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.",
+ " It’s not recommended to make encrypted rooms public. It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.": " It’s not recommended to make encrypted rooms public. It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.",
"To avoid these issues, create a new public room for the conversation you plan to have.": "To avoid these issues, create a new public room for the conversation you plan to have.",
"To link to this room, please add an address.": "To link to this room, please add an address.",
"Private (invite only)": "Private (invite only)",
From 6f37e8b223cb99fa7a36fab883b5f411e184e2f4 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 29 Jul 2021 12:16:59 +0100
Subject: [PATCH 047/619] Use getChildren instead of getSpaceSummary as MSC2946
has moved on
---
.../structures/SpaceRoomDirectory.tsx | 51 ++++++++++---------
src/stores/SpaceStore.tsx | 22 ++++----
test/test-utils.js | 4 +-
3 files changed, 42 insertions(+), 35 deletions(-)
diff --git a/src/components/structures/SpaceRoomDirectory.tsx b/src/components/structures/SpaceRoomDirectory.tsx
index 038c1df514..195c31e959 100644
--- a/src/components/structures/SpaceRoomDirectory.tsx
+++ b/src/components/structures/SpaceRoomDirectory.tsx
@@ -18,7 +18,7 @@ import React, { ReactNode, useMemo, useState } from "react";
import { Room } from "matrix-js-sdk/src/models/room";
import { MatrixClient } from "matrix-js-sdk/src/client";
import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
-import { ISpaceSummaryRoom, ISpaceSummaryEvent } from "matrix-js-sdk/src/@types/spaces";
+import { IRoomChild, IRoomChildState } from "matrix-js-sdk/src/@types/spaces";
import classNames from "classnames";
import { sortBy } from "lodash";
@@ -50,11 +50,11 @@ interface IHierarchyProps {
initialText?: string;
refreshToken?: any;
additionalButtons?: ReactNode;
- showRoom(room: ISpaceSummaryRoom, viaServers?: string[], autoJoin?: boolean): void;
+ showRoom(room: IRoomChild, viaServers?: string[], autoJoin?: boolean): void;
}
interface ITileProps {
- room: ISpaceSummaryRoom;
+ room: IRoomChild;
suggested?: boolean;
selected?: boolean;
numChildRooms?: number;
@@ -205,7 +205,7 @@ const Tile: React.FC = ({
>;
};
-export const showRoom = (room: ISpaceSummaryRoom, viaServers?: string[], autoJoin = false) => {
+export const showRoom = (room: IRoomChild, viaServers?: string[], autoJoin = false) => {
// Don't let the user view a room they won't be able to either peek or join:
// fail earlier so they don't have to click back to the directory.
if (MatrixClientPeg.get().isGuest()) {
@@ -234,8 +234,8 @@ export const showRoom = (room: ISpaceSummaryRoom, viaServers?: string[], autoJoi
interface IHierarchyLevelProps {
spaceId: string;
- rooms: Map;
- relations: Map>;
+ rooms: Map;
+ relations: Map>;
parents: Set;
selectedMap?: Map>;
onViewRoomClick(roomId: string, autoJoin: boolean): void;
@@ -260,7 +260,7 @@ export const HierarchyLevel = ({
// XXX: Space Summary API doesn't give the child origin_server_ts but once it does we should use it for sorting
return getChildOrder(ev.content.order, null, ev.state_key);
});
- const [subspaces, childRooms] = sortedChildren.reduce((result, ev: ISpaceSummaryEvent) => {
+ const [subspaces, childRooms] = sortedChildren.reduce((result, ev: IRoomChildState) => {
const roomId = ev.state_key;
if (!rooms.has(roomId)) return result;
result[rooms.get(roomId).room_type === RoomType.Space ? 0 : 1].push(roomId);
@@ -318,31 +318,34 @@ export const HierarchyLevel = ({
// mutate argument refreshToken to force a reload
export const useSpaceSummary = (cli: MatrixClient, space: Room, refreshToken?: any): [
null,
- ISpaceSummaryRoom[],
- Map>?,
+ IRoomChild[],
+ Map>?,
Map>?,
Map>?,
] | [Error] => {
// TODO pagination
return useAsyncMemo(async () => {
try {
- const data = await cli.getSpaceSummary(space.roomId);
+ const { rooms } = await cli.getRoomChildren(space.roomId);
- const parentChildRelations = new EnhancedMap>();
+ const parentChildRelations = new EnhancedMap>();
const childParentRelations = new EnhancedMap>();
const viaMap = new EnhancedMap>();
- data.events.map((ev: ISpaceSummaryEvent) => {
- if (ev.type === EventType.SpaceChild) {
- parentChildRelations.getOrCreate(ev.room_id, new Map()).set(ev.state_key, ev);
- childParentRelations.getOrCreate(ev.state_key, new Set()).add(ev.room_id);
- }
- if (Array.isArray(ev.content.via)) {
- const set = viaMap.getOrCreate(ev.state_key, new Set());
- ev.content.via.forEach(via => set.add(via));
- }
+
+ rooms.forEach(room => {
+ room.children_state.forEach((ev: IRoomChildState) => {
+ if (ev.type === EventType.SpaceChild) {
+ parentChildRelations.getOrCreate(ev.room_id, new Map()).set(ev.state_key, ev);
+ childParentRelations.getOrCreate(ev.state_key, new Set()).add(ev.room_id);
+ }
+ if (Array.isArray(ev.content.via)) {
+ const set = viaMap.getOrCreate(ev.state_key, new Set());
+ ev.content.via.forEach(via => set.add(via));
+ }
+ });
});
- return [null, data.rooms as ISpaceSummaryRoom[], parentChildRelations, viaMap, childParentRelations];
+ return [null, rooms, parentChildRelations, viaMap, childParentRelations];
} catch (e) {
console.error(e); // TODO
return [e];
@@ -370,7 +373,7 @@ export const SpaceHierarchy: React.FC = ({
if (!rooms) return null;
const lcQuery = query.toLowerCase().trim();
- const roomsMap = new Map(rooms.map(r => [r.room_id, r]));
+ const roomsMap = new Map(rooms.map(r => [r.room_id, r]));
if (!lcQuery) return roomsMap;
const directMatches = rooms.filter(r => {
@@ -614,7 +617,7 @@ const SpaceRoomDirectory: React.FC = ({ space, onFinished, initialText }
{
+ showRoom={(room: IRoomChild, viaServers?: string[], autoJoin = false) => {
showRoom(room, viaServers, autoJoin);
onFinished();
}}
@@ -637,6 +640,6 @@ export default SpaceRoomDirectory;
// Similar to matrix-react-sdk's MatrixTools.getDisplayAliasForRoom
// but works with the objects we get from the public room list
-function getDisplayAliasForRoom(room: ISpaceSummaryRoom) {
+function getDisplayAliasForRoom(room: IRoomChild) {
return getDisplayAliasForAliasSet(room.canonical_alias, room.aliases);
}
diff --git a/src/stores/SpaceStore.tsx b/src/stores/SpaceStore.tsx
index d064b01257..e25ca7e32d 100644
--- a/src/stores/SpaceStore.tsx
+++ b/src/stores/SpaceStore.tsx
@@ -19,7 +19,7 @@ import { ListIteratee, Many, sortBy, throttle } from "lodash";
import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
import { Room } from "matrix-js-sdk/src/models/room";
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
-import { ISpaceSummaryRoom } from "matrix-js-sdk/src/@types/spaces";
+import { IRoomChild } from "matrix-js-sdk/src/@types/spaces";
import { JoinRule } from "matrix-js-sdk/src/@types/partials";
import { IRoomCapability } from "matrix-js-sdk/src/client";
@@ -63,7 +63,7 @@ export const UPDATE_INVITED_SPACES = Symbol("invited-spaces");
export const UPDATE_SELECTED_SPACE = Symbol("selected-space");
// Space Room ID/HOME_SPACE will be emitted when a Space's children change
-export interface ISuggestedRoom extends ISpaceSummaryRoom {
+export interface ISuggestedRoom extends IRoomChild {
viaServers: string[];
}
@@ -297,18 +297,20 @@ export class SpaceStoreClass extends AsyncStoreWithClient {
public fetchSuggestedRooms = async (space: Room, limit = MAX_SUGGESTED_ROOMS): Promise => {
try {
- const data = await this.matrixClient.getSpaceSummary(space.roomId, 0, true, false, limit);
+ const { rooms } = await this.matrixClient.getRoomChildren(space.roomId, limit, 1, true);
const viaMap = new EnhancedMap>();
- data.events.forEach(ev => {
- if (ev.type === EventType.SpaceChild && ev.content.via?.length) {
- ev.content.via.forEach(via => {
- viaMap.getOrCreate(ev.state_key, new Set()).add(via);
- });
- }
+ rooms.forEach(room => {
+ room.children_state.forEach(ev => {
+ if (ev.type === EventType.SpaceChild && ev.content.via?.length) {
+ ev.content.via.forEach(via => {
+ viaMap.getOrCreate(ev.state_key, new Set()).add(via);
+ });
+ }
+ });
});
- return data.rooms.filter(roomInfo => {
+ return rooms.filter(roomInfo => {
return roomInfo.room_type !== RoomType.Space
&& this.matrixClient.getRoom(roomInfo.room_id)?.getMyMembership() !== "join";
}).map(roomInfo => ({
diff --git a/test/test-utils.js b/test/test-utils.js
index 5e29fd242e..8bc357c7b3 100644
--- a/test/test-utils.js
+++ b/test/test-utils.js
@@ -86,7 +86,9 @@ export function createTestClient() {
isCryptoEnabled: () => false,
getSpaceSummary: jest.fn().mockReturnValue({
rooms: [],
- events: [],
+ }),
+ getRoomChildren: jest.fn().mockReturnValue({
+ rooms: [],
}),
// Used by various internal bits we aren't concerned with (yet)
From d459dbe7009567299c61d6765dd3f714d60ec0b0 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 29 Jul 2021 17:35:15 +0100
Subject: [PATCH 048/619] Refactor Space Hierarchy stuff in preparation for
pagination
---
src/components/structures/RoomDirectory.tsx | 2 +-
.../structures/SpaceRoomDirectory.tsx | 244 +++++++++---------
src/stores/SpaceStore.tsx | 6 +-
test/test-utils.js | 2 +-
4 files changed, 122 insertions(+), 132 deletions(-)
diff --git a/src/components/structures/RoomDirectory.tsx b/src/components/structures/RoomDirectory.tsx
index 84e8de8221..8d8609d1cf 100644
--- a/src/components/structures/RoomDirectory.tsx
+++ b/src/components/structures/RoomDirectory.tsx
@@ -833,6 +833,6 @@ export default class RoomDirectory extends React.Component {
// Similar to matrix-react-sdk's MatrixTools.getDisplayAliasForRoom
// but works with the objects we get from the public room list
-function getDisplayAliasForRoom(room: IPublicRoomsChunkRoom) {
+export function getDisplayAliasForRoom(room: IPublicRoomsChunkRoom) {
return getDisplayAliasForAliasSet(room.canonical_alias, room.aliases);
}
diff --git a/src/components/structures/SpaceRoomDirectory.tsx b/src/components/structures/SpaceRoomDirectory.tsx
index 7d74d7d5a7..05ba61973f 100644
--- a/src/components/structures/SpaceRoomDirectory.tsx
+++ b/src/components/structures/SpaceRoomDirectory.tsx
@@ -14,15 +14,17 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import React, { ReactNode, useMemo, useState } from "react";
+import React, { ReactNode, useCallback, useEffect, useMemo, useState } from "react";
import { Room } from "matrix-js-sdk/src/models/room";
+import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
-import { IRoomChild, IRoomChildState } from "matrix-js-sdk/src/@types/spaces";
+import { IHierarchyRelation, IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
import classNames from "classnames";
import { sortBy } from "lodash";
import { MatrixClientPeg } from "../../MatrixClientPeg";
import dis from "../../dispatcher/dispatcher";
+import defaultDispatcher from "../../dispatcher/dispatcher";
import { _t } from "../../languageHandler";
import AccessibleButton, { ButtonEvent } from "../views/elements/AccessibleButton";
import BaseDialog from "../views/dialogs/BaseDialog";
@@ -30,8 +32,6 @@ import Spinner from "../views/elements/Spinner";
import SearchBox from "./SearchBox";
import RoomAvatar from "../views/avatars/RoomAvatar";
import RoomName from "../views/elements/RoomName";
-import { useAsyncMemo } from "../../hooks/useAsyncMemo";
-import { EnhancedMap } from "../../utils/maps";
import StyledCheckbox from "../views/elements/StyledCheckbox";
import AutoHideScrollbar from "./AutoHideScrollbar";
import BaseAvatar from "../views/avatars/BaseAvatar";
@@ -42,20 +42,19 @@ import { useStateToggle } from "../../hooks/useStateToggle";
import { getChildOrder } from "../../stores/SpaceStore";
import AccessibleTooltipButton from "../views/elements/AccessibleTooltipButton";
import { linkifyElement } from "../../HtmlUtils";
-import { getDisplayAliasForAliasSet } from "../../Rooms";
import { useDispatcher } from "../../hooks/useDispatcher";
-import defaultDispatcher from "../../dispatcher/dispatcher";
import { Action } from "../../dispatcher/actions";
+import { getDisplayAliasForRoom } from "./RoomDirectory";
interface IHierarchyProps {
space: Room;
initialText?: string;
additionalButtons?: ReactNode;
- showRoom(room: IRoomChild, viaServers?: string[], autoJoin?: boolean): void;
+ showRoom(hierarchy: RoomHierarchy, roomId: string, autoJoin?: boolean): void;
}
interface ITileProps {
- room: IRoomChild;
+ room: IHierarchyRoom;
suggested?: boolean;
selected?: boolean;
numChildRooms?: number;
@@ -206,7 +205,9 @@ const Tile: React.FC = ({
>;
};
-export const showRoom = (room: IRoomChild, viaServers?: string[], autoJoin = false) => {
+export const showRoom = (hierarchy: RoomHierarchy, roomId: string, autoJoin = false) => {
+ const room = hierarchy.roomMap.get(roomId);
+
// Don't let the user view a room they won't be able to either peek or join:
// fail earlier so they don't have to click back to the directory.
if (MatrixClientPeg.get().isGuest()) {
@@ -224,7 +225,7 @@ export const showRoom = (room: IRoomChild, viaServers?: string[], autoJoin = fal
_type: "room_directory", // instrumentation
room_alias: roomAlias,
room_id: room.room_id,
- via_servers: viaServers,
+ via_servers: Array.from(hierarchy.viaMap.get(roomId) || []),
oob_data: {
avatarUrl: room.avatar_url,
// XXX: This logic is duplicated from the JS SDK which would normally decide what the name is.
@@ -234,9 +235,9 @@ export const showRoom = (room: IRoomChild, viaServers?: string[], autoJoin = fal
};
interface IHierarchyLevelProps {
- spaceId: string;
- rooms: Map;
- relations: Map>;
+ root: IHierarchyRoom;
+ roomSet: Set;
+ hierarchy: RoomHierarchy;
parents: Set;
selectedMap?: Map>;
onViewRoomClick(roomId: string, autoJoin: boolean): void;
@@ -244,67 +245,69 @@ interface IHierarchyLevelProps {
}
export const HierarchyLevel = ({
- spaceId,
- rooms,
- relations,
+ root,
+ roomSet,
+ hierarchy,
parents,
selectedMap,
onViewRoomClick,
onToggleClick,
}: IHierarchyLevelProps) => {
const cli = MatrixClientPeg.get();
- const space = cli.getRoom(spaceId);
+ const space = cli.getRoom(root.room_id);
const hasPermissions = space?.currentState.maySendStateEvent(EventType.SpaceChild, cli.getUserId());
- const children = Array.from(relations.get(spaceId)?.values() || []);
- const sortedChildren = sortBy(children, ev => {
- // XXX: Space Summary API doesn't give the child origin_server_ts but once it does we should use it for sorting
- return getChildOrder(ev.content.order, null, ev.state_key);
+ const sortedChildren = sortBy(root.children_state, ev => {
+ return getChildOrder(ev.content.order, ev.origin_server_ts, ev.state_key);
});
- const [subspaces, childRooms] = sortedChildren.reduce((result, ev: IRoomChildState) => {
- const roomId = ev.state_key;
- if (!rooms.has(roomId)) return result;
- result[rooms.get(roomId).room_type === RoomType.Space ? 0 : 1].push(roomId);
- return result;
- }, [[], []]) || [[], []];
- const newParents = new Set(parents).add(spaceId);
+ const [subspaces, childRooms] = sortedChildren.reduce((result, ev: IHierarchyRelation) => {
+ const room = hierarchy.roomMap.get(ev.state_key);
+ if (room && roomSet.has(room)) {
+ result[room.room_type === RoomType.Space ? 0 : 1].push(room);
+ }
+ return result;
+ }, [[] as IHierarchyRoom[], [] as IHierarchyRoom[]]);
+
+ const newParents = new Set(parents).add(root.room_id);
return
{
- childRooms.map(roomId => (
+ childRooms.map(room => (
{
- onViewRoomClick(roomId, autoJoin);
+ onViewRoomClick(room.room_id, autoJoin);
}}
hasPermissions={hasPermissions}
- onToggleClick={onToggleClick ? () => onToggleClick(spaceId, roomId) : undefined}
+ onToggleClick={onToggleClick ? () => onToggleClick(root.room_id, room.room_id) : undefined}
/>
))
}
{
- subspaces.filter(roomId => !newParents.has(roomId)).map(roomId => (
+ subspaces.filter(room => !newParents.has(room.room_id)).map(space => (
rooms.has(ev.state_key) && !rooms.get(ev.state_key).room_type).length}
- suggested={relations.get(spaceId)?.get(roomId)?.content.suggested}
- selected={selectedMap?.get(spaceId)?.has(roomId)}
+ key={space.room_id}
+ room={space}
+ numChildRooms={space.children_state.filter(ev => {
+ const room = hierarchy.roomMap.get(ev.state_key);
+ return room && roomSet.has(room) && !room.room_type;
+ }).length}
+ suggested={hierarchy.isSuggested(root.room_id, space.room_id)}
+ selected={selectedMap?.get(root.room_id)?.has(space.room_id)}
onViewRoomClick={(autoJoin) => {
- onViewRoomClick(roomId, autoJoin);
+ onViewRoomClick(space.room_id, autoJoin);
}}
hasPermissions={hasPermissions}
- onToggleClick={onToggleClick ? () => onToggleClick(spaceId, roomId) : undefined}
+ onToggleClick={onToggleClick ? () => onToggleClick(root.room_id, space.room_id) : undefined}
>
;
};
-export const useSpaceSummary = (space: Room): [
- null,
- IRoomChild[],
- Map>?,
- Map>?,
- Map>?,
-] | [Error] => {
- // crude temporary refresh token approach until we have pagination and rework the data flow here
- const [refreshToken, setRefreshToken] = useState(0);
+export const useSpaceSummary = (space: Room): {
+ loading: boolean;
+ rooms: IHierarchyRoom[];
+ hierarchy: RoomHierarchy;
+ loadMore(pageSize?: number): Promise ;
+} => {
+ const [rooms, setRooms] = useState([]);
+ const [loading, setLoading] = useState(true);
+
+ const INITIAL_PAGE_SIZE = 20;
+ const [hierarchy, setHierarchy] = useState();
+
+ const resetHierarchy = useCallback(() => {
+ const hierarchy = new RoomHierarchy(space, INITIAL_PAGE_SIZE);
+ setHierarchy(hierarchy);
+
+ let discard = false;
+ hierarchy.load().then(() => {
+ if (discard) return;
+ setRooms(hierarchy.rooms);
+ setLoading(false);
+ });
+
+ return () => {
+ discard = true;
+ };
+ }, [space]);
+ useEffect(resetHierarchy, [resetHierarchy]);
+
useDispatcher(defaultDispatcher, (payload => {
if (payload.action === Action.UpdateSpaceHierarchy) {
- setRefreshToken(t => t + 1);
+ setLoading(true);
+ setRooms([]); // TODO
+ resetHierarchy();
}
}));
- // TODO pagination
- return useAsyncMemo(async () => {
- try {
- const { rooms } = await space.client.getRoomChildren(space.roomId);
+ const loadMore = useCallback(async (pageSize?: number) => {
+ if (!hierarchy.canLoadMore || hierarchy.noSupport) return;
- const parentChildRelations = new EnhancedMap>();
- const childParentRelations = new EnhancedMap>();
- const viaMap = new EnhancedMap>();
+ setLoading(true);
+ await hierarchy.load(pageSize);
+ setRooms(hierarchy.rooms);
+ setLoading(false);
+ }, [hierarchy]);
- rooms.forEach(room => {
- room.children_state.forEach((ev: IRoomChildState) => {
- if (ev.type === EventType.SpaceChild) {
- parentChildRelations.getOrCreate(ev.room_id, new Map()).set(ev.state_key, ev);
- childParentRelations.getOrCreate(ev.state_key, new Set()).add(ev.room_id);
- }
- if (Array.isArray(ev.content.via)) {
- const set = viaMap.getOrCreate(ev.state_key, new Set());
- ev.content.via.forEach(via => set.add(via));
- }
- });
- });
-
- return [null, rooms, parentChildRelations, viaMap, childParentRelations];
- } catch (e) {
- console.error(e); // TODO
- return [e];
- }
- }, [space, refreshToken], [undefined]);
+ return { loading, rooms, hierarchy, loadMore };
};
export const SpaceHierarchy: React.FC = ({
@@ -374,14 +381,12 @@ export const SpaceHierarchy: React.FC = ({
const [selected, setSelected] = useState(new Map>()); // Map>
- const [summaryError, rooms, parentChildMap, viaMap, childParentMap] = useSpaceSummary(space);
+ const { loading, rooms, hierarchy } = useSpaceSummary(space);
- const roomsMap = useMemo(() => {
- if (!rooms) return null;
+ const filteredRoomSet = useMemo>(() => {
+ if (!rooms.length) return new Set();
const lcQuery = query.toLowerCase().trim();
-
- const roomsMap = new Map(rooms.map(r => [r.room_id, r]));
- if (!lcQuery) return roomsMap;
+ if (!lcQuery) return new Set(rooms);
const directMatches = rooms.filter(r => {
return r.name?.toLowerCase().includes(lcQuery) || r.topic?.toLowerCase().includes(lcQuery);
@@ -393,34 +398,30 @@ export const SpaceHierarchy: React.FC = ({
while (queue.length) {
const roomId = queue.pop();
visited.add(roomId);
- childParentMap.get(roomId)?.forEach(parentId => {
+ hierarchy.backRefs.get(roomId)?.forEach(parentId => {
if (!visited.has(parentId)) {
queue.push(parentId);
}
});
}
- // Remove any mappings for rooms which were not visited in the walk
- Array.from(roomsMap.keys()).forEach(roomId => {
- if (!visited.has(roomId)) {
- roomsMap.delete(roomId);
- }
- });
- return roomsMap;
- }, [rooms, childParentMap, query]);
+ return new Set(rooms.filter(r => visited.has(r.room_id)));
+ }, [rooms, hierarchy, query]);
const [error, setError] = useState("");
const [removing, setRemoving] = useState(false);
const [saving, setSaving] = useState(false);
- if (summaryError) {
+ if (!loading && hierarchy.noSupport) {
return
{ _t("Your server does not support showing space hierarchies.") }
;
}
let content;
- if (roomsMap) {
- const numRooms = Array.from(roomsMap.values()).filter(r => !r.room_type).length;
- const numSpaces = roomsMap.size - numRooms - 1; // -1 at the end to exclude the space we are looking at
+ if (loading) {
+ content = ;
+ } else {
+ const numRooms = Array.from(filteredRoomSet).filter(r => !r.room_type).length;
+ const numSpaces = filteredRoomSet.size - numRooms - 1; // -1 at the end to exclude the space we are looking at
let countsStr;
if (numSpaces > 1) {
@@ -438,7 +439,7 @@ export const SpaceHierarchy: React.FC = ({
});
const selectionAllSuggested = selectedRelations.every(([parentId, childId]) => {
- return parentChildMap.get(parentId)?.get(childId)?.content.suggested;
+ return hierarchy.isSuggested(parentId, childId);
});
const disabled = !selectedRelations.length || removing || saving;
@@ -461,17 +462,14 @@ export const SpaceHierarchy: React.FC = ({
try {
for (const [parentId, childId] of selectedRelations) {
await cli.sendStateEvent(parentId, EventType.SpaceChild, {}, childId);
- parentChildMap.get(parentId).delete(childId);
- if (parentChildMap.get(parentId).size > 0) {
- parentChildMap.set(parentId, new Map(parentChildMap.get(parentId)));
- } else {
- parentChildMap.delete(parentId);
- }
+
+ hierarchy.removeRelation(parentId, childId);
}
} catch (e) {
setError(_t("Failed to remove some rooms. Try again later"));
}
setRemoving(false);
+ setSelected(new Map());
}}
kind="danger_outline"
disabled={disabled}
@@ -485,7 +483,7 @@ export const SpaceHierarchy: React.FC = ({
try {
for (const [parentId, childId] of selectedRelations) {
const suggested = !selectionAllSuggested;
- const existingContent = parentChildMap.get(parentId)?.get(childId)?.content;
+ const existingContent = hierarchy.getRelation(parentId, childId)?.content;
if (!existingContent || existingContent.suggested === suggested) continue;
const content = {
@@ -495,8 +493,8 @@ export const SpaceHierarchy: React.FC = ({
await cli.sendStateEvent(parentId, EventType.SpaceChild, content, childId);
- parentChildMap.get(parentId).get(childId).content = content;
- parentChildMap.set(parentId, new Map(parentChildMap.get(parentId)));
+ // mutate the local state to save us having to refetch the world
+ existingContent.suggested = content.suggested;
}
} catch (e) {
setError("Failed to update some suggestions. Try again later");
@@ -516,14 +514,14 @@ export const SpaceHierarchy: React.FC = ({
}
let results;
- if (roomsMap.size) {
+ if (filteredRoomSet.size) {
const hasPermissions = space?.currentState.maySendStateEvent(EventType.SpaceChild, cli.getUserId());
results = <>
{
@@ -543,7 +541,7 @@ export const SpaceHierarchy: React.FC = ({
setSelected(new Map(selected.set(parentId, new Set(parentSet))));
} : undefined}
onViewRoomClick={(roomId, autoJoin) => {
- showRoom(roomsMap.get(roomId), Array.from(viaMap.get(roomId) || []), autoJoin);
+ showRoom(hierarchy, roomId, autoJoin);
}}
/>
{ children && }
@@ -571,8 +569,6 @@ export const SpaceHierarchy: React.FC = ({
{ children }
>;
- } else {
- content = ;
}
// TODO loading state/error state
@@ -624,8 +620,8 @@ const SpaceRoomDirectory: React.FC = ({ space, onFinished, initialText }
{
- showRoom(room, viaServers, autoJoin);
+ showRoom={(hierarchy: RoomHierarchy, roomId: string, autoJoin = false) => {
+ showRoom(hierarchy, roomId, autoJoin);
onFinished();
}}
initialText={initialText}
@@ -644,9 +640,3 @@ const SpaceRoomDirectory: React.FC = ({ space, onFinished, initialText }
};
export default SpaceRoomDirectory;
-
-// Similar to matrix-react-sdk's MatrixTools.getDisplayAliasForRoom
-// but works with the objects we get from the public room list
-function getDisplayAliasForRoom(room: IRoomChild) {
- return getDisplayAliasForAliasSet(room.canonical_alias, room.aliases);
-}
diff --git a/src/stores/SpaceStore.tsx b/src/stores/SpaceStore.tsx
index e25ca7e32d..bf8c1ecb44 100644
--- a/src/stores/SpaceStore.tsx
+++ b/src/stores/SpaceStore.tsx
@@ -19,7 +19,7 @@ import { ListIteratee, Many, sortBy, throttle } from "lodash";
import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
import { Room } from "matrix-js-sdk/src/models/room";
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
-import { IRoomChild } from "matrix-js-sdk/src/@types/spaces";
+import { IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
import { JoinRule } from "matrix-js-sdk/src/@types/partials";
import { IRoomCapability } from "matrix-js-sdk/src/client";
@@ -63,7 +63,7 @@ export const UPDATE_INVITED_SPACES = Symbol("invited-spaces");
export const UPDATE_SELECTED_SPACE = Symbol("selected-space");
// Space Room ID/HOME_SPACE will be emitted when a Space's children change
-export interface ISuggestedRoom extends IRoomChild {
+export interface ISuggestedRoom extends IHierarchyRoom {
viaServers: string[];
}
@@ -297,7 +297,7 @@ export class SpaceStoreClass extends AsyncStoreWithClient {
public fetchSuggestedRooms = async (space: Room, limit = MAX_SUGGESTED_ROOMS): Promise => {
try {
- const { rooms } = await this.matrixClient.getRoomChildren(space.roomId, limit, 1, true);
+ const { rooms } = await this.matrixClient.getRoomHierarchy(space.roomId, limit, 1, true);
const viaMap = new EnhancedMap>();
rooms.forEach(room => {
diff --git a/test/test-utils.js b/test/test-utils.js
index 8bc357c7b3..b337828b68 100644
--- a/test/test-utils.js
+++ b/test/test-utils.js
@@ -87,7 +87,7 @@ export function createTestClient() {
getSpaceSummary: jest.fn().mockReturnValue({
rooms: [],
}),
- getRoomChildren: jest.fn().mockReturnValue({
+ getRoomHierarchy: jest.fn().mockReturnValue({
rooms: [],
}),
From 259627fba2f9a83e6f9a2e3cbf39b04c225aaf1d Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Fri, 30 Jul 2021 11:01:49 +0100
Subject: [PATCH 049/619] Clean up SpaceHierarchy
---
res/css/_components.scss | 2 +-
...oomDirectory.scss => _SpaceHierarchy.scss} | 54 +++------
res/css/structures/_SpaceRoomView.scss | 5 -
...ceRoomDirectory.tsx => SpaceHierarchy.tsx} | 108 ++++--------------
src/components/structures/SpaceRoomView.tsx | 2 +-
5 files changed, 43 insertions(+), 128 deletions(-)
rename res/css/structures/{_SpaceRoomDirectory.scss => _SpaceHierarchy.scss} (86%)
rename src/components/structures/{SpaceRoomDirectory.tsx => SpaceHierarchy.tsx} (86%)
diff --git a/res/css/_components.scss b/res/css/_components.scss
index 1feea1d26f..15cb20d963 100644
--- a/res/css/_components.scss
+++ b/res/css/_components.scss
@@ -27,8 +27,8 @@
@import "./structures/_RoomView.scss";
@import "./structures/_ScrollPanel.scss";
@import "./structures/_SearchBox.scss";
+@import "./structures/_SpaceHierarchy.scss";
@import "./structures/_SpacePanel.scss";
-@import "./structures/_SpaceRoomDirectory.scss";
@import "./structures/_SpaceRoomView.scss";
@import "./structures/_TabbedView.scss";
@import "./structures/_ToastContainer.scss";
diff --git a/res/css/structures/_SpaceRoomDirectory.scss b/res/css/structures/_SpaceHierarchy.scss
similarity index 86%
rename from res/css/structures/_SpaceRoomDirectory.scss
rename to res/css/structures/_SpaceHierarchy.scss
index bc343f535c..afb01d7c9a 100644
--- a/res/css/structures/_SpaceRoomDirectory.scss
+++ b/res/css/structures/_SpaceHierarchy.scss
@@ -14,21 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-.mx_SpaceRoomDirectory_dialogWrapper > .mx_Dialog {
- max-width: 960px;
- height: 100%;
-}
-
-.mx_SpaceRoomDirectory {
- height: 100%;
- margin-bottom: 12px;
- color: $primary-fg-color;
- word-break: break-word;
- display: flex;
- flex-direction: column;
-}
-
-.mx_SpaceRoomDirectory,
.mx_SpaceRoomView_landing {
.mx_Dialog_title {
display: flex;
@@ -67,7 +52,7 @@ limitations under the License.
margin: 24px 0 16px;
}
- .mx_SpaceRoomDirectory_noResults {
+ .mx_SpaceHierarchy_noResults {
text-align: center;
> div {
@@ -77,7 +62,7 @@ limitations under the License.
}
}
- .mx_SpaceRoomDirectory_listHeader {
+ .mx_SpaceHierarchy_listHeader {
display: flex;
min-height: 32px;
align-items: center;
@@ -104,7 +89,7 @@ limitations under the License.
}
}
- .mx_SpaceRoomDirectory_error {
+ .mx_SpaceHierarchy_error {
position: relative;
font-weight: $font-semi-bold;
color: $notice-primary-color;
@@ -123,13 +108,8 @@ limitations under the License.
background-image: url("$(res)/img/element-icons/warning-badge.svg");
}
}
-}
-.mx_SpaceRoomDirectory_list {
- margin-top: 16px;
- padding-bottom: 40px;
-
- .mx_SpaceRoomDirectory_roomCount {
+ .mx_SpaceHierarchy_roomCount {
> h3 {
display: inline;
font-weight: $font-semi-bold;
@@ -146,13 +126,13 @@ limitations under the License.
}
}
- .mx_SpaceRoomDirectory_subspace {
+ .mx_SpaceHierarchy_subspace {
.mx_BaseAvatar_image {
border-radius: 8px;
}
}
- .mx_SpaceRoomDirectory_subspace_toggle {
+ .mx_SpaceHierarchy_subspace_toggle {
position: absolute;
left: -1px;
top: 10px;
@@ -176,17 +156,17 @@ limitations under the License.
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
- &.mx_SpaceRoomDirectory_subspace_toggle_shown::before {
+ &.mx_SpaceHierarchy_subspace_toggle_shown::before {
transform: rotate(0deg);
}
}
- .mx_SpaceRoomDirectory_subspace_children {
+ .mx_SpaceHierarchy_subspace_children {
position: relative;
padding-left: 12px;
}
- .mx_SpaceRoomDirectory_roomTile {
+ .mx_SpaceHierarchy_roomTile {
position: relative;
padding: 8px 16px;
border-radius: 8px;
@@ -203,7 +183,7 @@ limitations under the License.
grid-column: 1;
}
- .mx_SpaceRoomDirectory_roomTile_name {
+ .mx_SpaceHierarchy_roomTile_name {
font-weight: $font-semi-bold;
font-size: $font-15px;
line-height: $font-18px;
@@ -231,7 +211,7 @@ limitations under the License.
}
}
- .mx_SpaceRoomDirectory_roomTile_info {
+ .mx_SpaceHierarchy_roomTile_info {
font-size: $font-14px;
line-height: $font-18px;
color: $secondary-fg-color;
@@ -243,7 +223,7 @@ limitations under the License.
overflow: hidden;
}
- .mx_SpaceRoomDirectory_actions {
+ .mx_SpaceHierarchy_actions {
text-align: right;
margin-left: 20px;
grid-column: 3;
@@ -277,8 +257,8 @@ limitations under the License.
}
}
- .mx_SpaceRoomDirectory_roomTile,
- .mx_SpaceRoomDirectory_subspace_children {
+ .mx_SpaceHierarchy_roomTile,
+ .mx_SpaceHierarchy_subspace_children {
&::before {
content: "";
position: absolute;
@@ -290,8 +270,8 @@ limitations under the License.
}
}
- .mx_SpaceRoomDirectory_actions {
- .mx_SpaceRoomDirectory_actionsText {
+ .mx_SpaceHierarchy_actions {
+ .mx_SpaceHierarchy_actionsText {
font-weight: normal;
font-size: $font-12px;
line-height: $font-15px;
@@ -306,7 +286,7 @@ limitations under the License.
margin: 20px 0;
}
- .mx_SpaceRoomDirectory_createRoom {
+ .mx_SpaceHierarchy_createRoom {
display: block;
margin: 16px auto 0;
width: max-content;
diff --git a/res/css/structures/_SpaceRoomView.scss b/res/css/structures/_SpaceRoomView.scss
index e4832d9430..3119d2fe6e 100644
--- a/res/css/structures/_SpaceRoomView.scss
+++ b/res/css/structures/_SpaceRoomView.scss
@@ -354,11 +354,6 @@ $SpaceRoomViewInnerWidth: 428px;
display: none;
}
}
-
- .mx_SpaceRoomDirectory_list {
- // we don't want this container to get forced into the flexbox layout
- display: contents;
- }
}
.mx_SpaceRoomView_privateScope {
diff --git a/src/components/structures/SpaceRoomDirectory.tsx b/src/components/structures/SpaceHierarchy.tsx
similarity index 86%
rename from src/components/structures/SpaceRoomDirectory.tsx
rename to src/components/structures/SpaceHierarchy.tsx
index 05ba61973f..d17d17f31e 100644
--- a/src/components/structures/SpaceRoomDirectory.tsx
+++ b/src/components/structures/SpaceHierarchy.tsx
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import React, { ReactNode, useCallback, useEffect, useMemo, useState } from "react";
+import React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from "react";
import { Room } from "matrix-js-sdk/src/models/room";
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
@@ -27,13 +27,10 @@ import dis from "../../dispatcher/dispatcher";
import defaultDispatcher from "../../dispatcher/dispatcher";
import { _t } from "../../languageHandler";
import AccessibleButton, { ButtonEvent } from "../views/elements/AccessibleButton";
-import BaseDialog from "../views/dialogs/BaseDialog";
import Spinner from "../views/elements/Spinner";
import SearchBox from "./SearchBox";
import RoomAvatar from "../views/avatars/RoomAvatar";
-import RoomName from "../views/elements/RoomName";
import StyledCheckbox from "../views/elements/StyledCheckbox";
-import AutoHideScrollbar from "./AutoHideScrollbar";
import BaseAvatar from "../views/avatars/BaseAvatar";
import { mediaFromMxc } from "../../customisations/Media";
import InfoTooltip from "../views/elements/InfoTooltip";
@@ -46,7 +43,7 @@ import { useDispatcher } from "../../hooks/useDispatcher";
import { Action } from "../../dispatcher/actions";
import { getDisplayAliasForRoom } from "./RoomDirectory";
-interface IHierarchyProps {
+interface IProps {
space: Room;
initialText?: string;
additionalButtons?: ReactNode;
@@ -148,13 +145,13 @@ const Tile: React.FC = ({
const content =
{ avatar }
-
+
{ name }
{ suggestedSection }
e && linkifyElement(e)}
onClick={ev => {
// prevent clicks on links from bubbling up to the room tile
@@ -165,7 +162,7 @@ const Tile: React.FC = ({
>
{ description }
-
+
{ button }
{ checkbox }
@@ -176,8 +173,8 @@ const Tile: React.FC = ({
if (children) {
// the chevron is purposefully a div rather than a button as it should be ignored for a11y
childToggle =
{ _t(
"To avoid these issues, create a new encrypted room for " +
From 67062dab88707b4c1fe26553969c08efb1cfed20 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Fri, 6 Aug 2021 07:40:35 +0200
Subject: [PATCH 054/619] Remove spaces
Co-authored-by: Travis Ralston
---
.../views/settings/tabs/room/SecurityRoomSettingsTab.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
index 58b12b18c3..8d870564b2 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
@@ -137,7 +137,7 @@ export default class SecurityRoomSettingsTab extends React.Component
{ _t(
- " It’s not recommended to add encryption to public rooms. " +
+ "It's not recommended to add encryption to public rooms." +
"Anyone can find and join public rooms, so anyone can read messages in them. " +
"You’ll get none of the benefits of encryption, and you won’t be able to turn it " +
"off later. Encrypting messages in a public room will make receiving and sending " +
From 94f915a4363dc4379e9e92b0ba02881581951fc6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Fri, 6 Aug 2021 07:41:23 +0200
Subject: [PATCH 055/619] Remove spaces
Co-authored-by: Travis Ralston
---
.../views/settings/tabs/room/SecurityRoomSettingsTab.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
index 8d870564b2..97b924c8a2 100644
--- a/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
+++ b/src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx
@@ -146,7 +146,7 @@ export default class SecurityRoomSettingsTab extends React.Component{ sub } },
) }
{ _t(
- "To avoid these issues, create a new public room for the conversation " +
+ "To avoid these issues, create a new public room for the conversation " +
"you plan to have.",
null,
{
From 1b8aae9556814e977e776d8cb8bbed3429af554f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Fri, 6 Aug 2021 07:56:56 +0200
Subject: [PATCH 058/619] i18n
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/i18n/strings/en_EN.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 77d10b8719..abc08f6651 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1437,14 +1437,14 @@
"Permissions": "Permissions",
"Select the roles required to change various parts of the room": "Select the roles required to change various parts of the room",
"Are you sure you want to add encryption to this public room?": "Are you sure you want to add encryption to this public room?",
- " It’s not recommended to add encryption to public rooms. Anyone can find and join public rooms, so anyone can read messages in them. You’ll get none of the benefits of encryption, and you won’t be able to turn it off later. Encrypting messages in a public room will make receiving and sending messages slower.": " It’s not recommended to add encryption to public rooms. Anyone can find and join public rooms, so anyone can read messages in them. You’ll get none of the benefits of encryption, and you won’t be able to turn it off later. Encrypting messages in a public room will make receiving and sending messages slower.",
- "To avoid these issues, create a new encrypted room for the conversation you plan to have.": "To avoid these issues, create a new encrypted room for the conversation you plan to have.",
+ "It's not recommended to add encryption to public rooms.Anyone can find and join public rooms, so anyone can read messages in them. You'll get none of the benefits of encryption, and you won't be able to turn it off later. Encrypting messages in a public room will make receiving and sending messages slower.": "It's not recommended to add encryption to public rooms.Anyone can find and join public rooms, so anyone can read messages in them. You'll get none of the benefits of encryption, and you won't be able to turn it off later. Encrypting messages in a public room will make receiving and sending messages slower.",
+ "To avoid these issues, create a new encrypted room for the conversation you plan to have.": "To avoid these issues, create a new encrypted room for the conversation you plan to have.",
"Enable encryption?": "Enable encryption?",
"Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.",
"This upgrade will allow members of selected spaces access to this room without an invite.": "This upgrade will allow members of selected spaces access to this room without an invite.",
"Are you sure you want to make this encrypted room public?": "Are you sure you want to make this encrypted room public?",
- " It’s not recommended to make encrypted rooms public. It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.": " It’s not recommended to make encrypted rooms public. It will mean anyone can find and join the room, so anyone can read messages. You’ll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.",
- "To avoid these issues, create a new public room for the conversation you plan to have.": "To avoid these issues, create a new public room for the conversation you plan to have.",
+ "It's not recommended to make encrypted rooms public. It will mean anyone can find and join the room, so anyone can read messages. You'll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.": "It's not recommended to make encrypted rooms public. It will mean anyone can find and join the room, so anyone can read messages. You'll get none of the benefits of encryption. Encrypting messages in a public room will make receiving and sending messages slower.",
+ "To avoid these issues, create a new public room for the conversation you plan to have.": "To avoid these issues, create a new public room for the conversation you plan to have.",
"To link to this room, please add an address.": "To link to this room, please add an address.",
"Private (invite only)": "Private (invite only)",
"Only invited people can join.": "Only invited people can join.",
From f57bffad3c5bf3ecfdc17c93a75ce814ab2e35ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Fri, 6 Aug 2021 09:05:33 +0200
Subject: [PATCH 059/619] Soften border color
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/rooms/_EventTile.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss
index 1c9d8e87d9..47512c3094 100644
--- a/res/css/views/rooms/_EventTile.scss
+++ b/res/css/views/rooms/_EventTile.scss
@@ -510,7 +510,7 @@ $hover-select-border: 4px;
.mx_EventTile:hover .mx_EventTile_body pre,
.mx_EventTile.focus-visible:focus-within .mx_EventTile_body pre {
- border: 1px solid #e5e5e5; // deliberate constant as we're behind an invert filter
+ border: 1px solid $tertiary-fg-color; // deliberate constant as we're behind an invert filter
}
.mx_EventTile_pre_container {
From 3c0ac487da0a0f2f9c2d5d0ae4e2d074003c701e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Fri, 6 Aug 2021 09:06:24 +0200
Subject: [PATCH 060/619] Remove comment
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/rooms/_EventTile.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss
index 47512c3094..6192fc4df9 100644
--- a/res/css/views/rooms/_EventTile.scss
+++ b/res/css/views/rooms/_EventTile.scss
@@ -510,7 +510,7 @@ $hover-select-border: 4px;
.mx_EventTile:hover .mx_EventTile_body pre,
.mx_EventTile.focus-visible:focus-within .mx_EventTile_body pre {
- border: 1px solid $tertiary-fg-color; // deliberate constant as we're behind an invert filter
+ border: 1px solid $tertiary-fg-color;
}
.mx_EventTile_pre_container {
From d43eac7722f45c23397e508870f20b6782163b6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Sun, 8 Aug 2021 15:00:25 +0200
Subject: [PATCH 061/619] Add bubble highlight styling
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/rooms/_EventBubbleTile.scss | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/res/css/views/rooms/_EventBubbleTile.scss b/res/css/views/rooms/_EventBubbleTile.scss
index c6170bf7c0..c4d8fab56f 100644
--- a/res/css/views/rooms/_EventBubbleTile.scss
+++ b/res/css/views/rooms/_EventBubbleTile.scss
@@ -33,6 +33,10 @@ limitations under the License.
margin-top: 2px;
}
+ &.mx_EventTile_highlight .mx_EventTile_line {
+ background-color: $event-highlight-bg-color;
+ }
+
/* For replies */
.mx_EventTile {
padding-top: 0;
From 1c7a89b2e4b36b4e23d8c358ccf6db6cb1ee5580 Mon Sep 17 00:00:00 2001
From: Panagiotis <27917356+panoschal@users.noreply.github.com>
Date: Sun, 8 Aug 2021 21:00:15 +0300
Subject: [PATCH 062/619] add comment - explain conditional statusBar
---
src/components/structures/RoomView.tsx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/components/structures/RoomView.tsx b/src/components/structures/RoomView.tsx
index 69d4cfc590..781fb94ddc 100644
--- a/src/components/structures/RoomView.tsx
+++ b/src/components/structures/RoomView.tsx
@@ -1852,6 +1852,8 @@ export default class RoomView extends React.Component {
"mx_RoomView_statusArea_expanded": isStatusAreaExpanded,
});
+ // if statusBar does not exist then statusBarArea is blank and takes up unnecessary space on the screen
+ // show statusBarArea only if statusBar is present
const statusBarArea = statusBar &&
From d9718027892e0932ebf84ab10652c5d616e79f7b Mon Sep 17 00:00:00 2001
From: Germain Souquet
Date: Tue, 10 Aug 2021 14:30:12 +0200
Subject: [PATCH 063/619] Create ThreadView phase in RightPanel
---
res/css/views/messages/_MessageActionBar.scss | 4 +
src/components/structures/RightPanel.tsx | 9 ++
src/components/structures/ThreadView.tsx | 90 +++++++++++++++++++
.../views/messages/MessageActionBar.js | 33 +++++--
src/i18n/strings/en_EN.json | 1 +
src/stores/RightPanelStorePhases.ts | 3 +
6 files changed, 134 insertions(+), 6 deletions(-)
create mode 100644 src/components/structures/ThreadView.tsx
diff --git a/res/css/views/messages/_MessageActionBar.scss b/res/css/views/messages/_MessageActionBar.scss
index 69f3c672b7..509ded8ee8 100644
--- a/res/css/views/messages/_MessageActionBar.scss
+++ b/res/css/views/messages/_MessageActionBar.scss
@@ -92,6 +92,10 @@ limitations under the License.
mask-image: url('$(res)/img/element-icons/room/message-bar/reply.svg');
}
+.mx_MessageActionBar_threadButton::after {
+ mask-image: url('$(res)/img/element-icons/room/files.svg');
+}
+
.mx_MessageActionBar_editButton::after {
mask-image: url('$(res)/img/element-icons/room/message-bar/edit.svg');
}
diff --git a/src/components/structures/RightPanel.tsx b/src/components/structures/RightPanel.tsx
index 95d70e913a..f2bd7db0f3 100644
--- a/src/components/structures/RightPanel.tsx
+++ b/src/components/structures/RightPanel.tsx
@@ -45,6 +45,7 @@ import GroupRoomInfo from "../views/groups/GroupRoomInfo";
import UserInfo from "../views/right_panel/UserInfo";
import ThirdPartyMemberInfo from "../views/rooms/ThirdPartyMemberInfo";
import FilePanel from "./FilePanel";
+import ThreadView from "./ThreadView";
import NotificationPanel from "./NotificationPanel";
import ResizeNotifier from "../../utils/ResizeNotifier";
import PinnedMessagesCard from "../views/right_panel/PinnedMessagesCard";
@@ -309,6 +310,14 @@ export default class RightPanel extends React.Component {
panel = ;
break;
+ case RightPanelPhases.ThreadView:
+ panel = ;
+ break;
+
case RightPanelPhases.RoomSummary:
panel = ;
break;
diff --git a/src/components/structures/ThreadView.tsx b/src/components/structures/ThreadView.tsx
new file mode 100644
index 0000000000..8b196cb4f0
--- /dev/null
+++ b/src/components/structures/ThreadView.tsx
@@ -0,0 +1,90 @@
+/*
+Copyright 2016 OpenMarket Ltd
+Copyright 2019 The Matrix.org Foundation C.I.C.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+import React from 'react';
+import { MatrixEvent } from 'matrix-js-sdk/src';
+
+import BaseCard from "../views/right_panel/BaseCard";
+import { RightPanelPhases } from "../../stores/RightPanelStorePhases";
+import { replaceableComponent } from "../../utils/replaceableComponent";
+import { MatrixClientPeg } from '../../MatrixClientPeg';
+
+import ResizeNotifier from '../../utils/ResizeNotifier';
+import EventTile from '../views/rooms/EventTile';
+import MessageComposer from '../views/rooms/MessageComposer';
+
+interface IProps {
+ roomId: string;
+ onClose: () => void;
+ resizeNotifier: ResizeNotifier;
+ mxEvent: MatrixEvent;
+}
+
+interface IState {
+}
+
+/*
+ * Component which shows the filtered file using a TimelinePanel
+ */
+@replaceableComponent("structures.ThreadView")
+class ThreadView extends React.Component {
+ state = {};
+
+ public componentDidMount(): void {}
+
+ public componentWillUnmount(): void {}
+
+ public renderEventTile(event: MatrixEvent): JSX.Element {
+ return ;
+ }
+
+ public render() {
+ const client = MatrixClientPeg.get();
+ const room = client.getRoom(this.props.roomId);
+ const thread = room.getThread(this.props.mxEvent.getId());
+ return (
+
+ { this.renderEventTile(this.props.mxEvent) }
+
+ { thread && (
+ thread.eventTimeline.map((event: MatrixEvent) => {
+ return this.renderEventTile(event);
+ })
+ ) }
+
+
+
+ );
+ }
+}
+
+export default ThreadView;
diff --git a/src/components/views/messages/MessageActionBar.js b/src/components/views/messages/MessageActionBar.js
index 7fe0eca697..25f3dc740f 100644
--- a/src/components/views/messages/MessageActionBar.js
+++ b/src/components/views/messages/MessageActionBar.js
@@ -23,6 +23,8 @@ import { EventStatus } from 'matrix-js-sdk/src/models/event';
import { _t } from '../../../languageHandler';
import * as sdk from '../../../index';
import dis from '../../../dispatcher/dispatcher';
+import { Action } from '../../../dispatcher/actions';
+import { RightPanelPhases } from '../../../stores/RightPanelStorePhases';
import { aboveLeftOf, ContextMenu, ContextMenuTooltipButton, useContextMenu } from '../../structures/ContextMenu';
import { isContentActionable, canEditContent } from '../../../utils/EventUtils';
import RoomContext from "../../../contexts/RoomContext";
@@ -170,6 +172,17 @@ export default class MessageActionBar extends React.PureComponent {
});
};
+ onThreadClick = () => {
+ dis.dispatch({
+ action: Action.SetRightPanelPhase,
+ phase: RightPanelPhases.ThreadView,
+ allowClose: false,
+ refireParams: {
+ event: this.props.mxEvent,
+ }
+ });
+ }
+
onEditClick = (ev) => {
dis.dispatch({
action: 'edit_event',
@@ -254,12 +267,20 @@ export default class MessageActionBar extends React.PureComponent {
// The only catch is we do the reply button first so that we can make sure the react
// button is the very first button without having to do length checks for `splice()`.
if (this.context.canReply) {
- toolbarOpts.splice(0, 0, );
+ toolbarOpts.splice(0, 0, <>
+
+
+ >);
}
if (this.context.canReact) {
toolbarOpts.splice(0, 0,
Date: Tue, 10 Aug 2021 15:50:23 +0100
Subject: [PATCH 064/619] Collapse lines together to reduce line/indent spam
Signed-off-by: Paulo Pinto
---
src/TextForEvent.tsx | 72 ++++++++++++++++++++------------------------
1 file changed, 33 insertions(+), 39 deletions(-)
diff --git a/src/TextForEvent.tsx b/src/TextForEvent.tsx
index 1033ac9fd8..a85d44ecb3 100644
--- a/src/TextForEvent.tsx
+++ b/src/TextForEvent.tsx
@@ -442,22 +442,20 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
return () => (
- {
- _t(
- "%(senderName)s pinned a message to this room. See all pinned messages.",
- { senderName },
- {
- "a": (sub) =>
- onPinnedOrUnpinnedMessageClick(messageId, roomId)}>
- { sub }
- ,
- "b": (sub) =>
-
- { sub }
- ,
- },
- )
- }
+ { _t(
+ "%(senderName)s pinned a message to this room. See all pinned messages.",
+ { senderName },
+ {
+ "a": (sub) =>
+ onPinnedOrUnpinnedMessageClick(messageId, roomId)}>
+ { sub }
+ ,
+ "b": (sub) =>
+
+ { sub }
+ ,
+ },
+ ) }
);
}
@@ -472,22 +470,20 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
return () => (
- {
- _t(
- "%(senderName)s unpinned a message from this room. See all pinned messages.",
- { senderName },
- {
- "a": (sub) =>
- onPinnedOrUnpinnedMessageClick(messageId, roomId)}>
- { sub }
- ,
- "b": (sub) =>
-
- { sub }
- ,
- },
- )
- }
+ { _t(
+ "%(senderName)s unpinned a message from this room. See all pinned messages.",
+ { senderName },
+ {
+ "a": (sub) =>
+ onPinnedOrUnpinnedMessageClick(messageId, roomId)}>
+ { sub }
+ ,
+ "b": (sub) =>
+
+ { sub }
+ ,
+ },
+ ) }
);
}
@@ -498,13 +494,11 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
if (allowJSX) {
return () => (
- {
- _t(
- "%(senderName)s changed the pinned messages for the room.",
- { senderName },
- { "a": (sub) => { sub } },
- )
- }
+ { _t(
+ "%(senderName)s changed the pinned messages for the room.",
+ { senderName },
+ { "a": (sub) => { sub } },
+ ) }
);
}
From 45fd3d83b07814e31788da9421b2c3355dc7f422 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Tue, 10 Aug 2021 16:06:33 +0100
Subject: [PATCH 065/619] Refactor tests
So that there's one top level `describe('TextForEvent')`, followed by a nested
`describe('textForPinnedEvent')`, containting all the `it()`s.
Signed-off-by: Paulo Pinto
---
test/TextForEvent-test.ts | 136 ++++++++-----------
test/__snapshots__/TextForEvent-test.ts.snap | 42 +++---
2 files changed, 77 insertions(+), 101 deletions(-)
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index 0b3b73613a..b50996c186 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -23,88 +23,64 @@ function mockPinnedEvent(
});
}
-describe("TextForPinnedEvent - newly pinned message(s)", () => {
- SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
+describe('TextForEvent', () => {
+ describe("TextForPinnedEvent", () => {
+ SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
- it("mentions message when a single message was pinned, with no previously pinned messages", () => {
- const event = mockPinnedEvent(['message-1']);
- expect(textForEvent(event)).toBe("@foo:example.com pinned a message to this room. See all pinned messages.");
- });
+ it("mentions message when a single message was pinned, with no previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-1']);
+ expect(textForEvent(event)).toBe(
+ "@foo:example.com pinned a message to this room. See all pinned messages.",
+ );
- it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
- const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
- expect(textForEvent(event)).toBe("@foo:example.com pinned a message to this room. See all pinned messages.");
- });
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
- it("shows generic text when multiple messages were pinned", () => {
- const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
- expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
- });
-});
-
-describe("TextForPinnedEvent - newly pinned message(s) (JSX)", () => {
- SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
-
- it("mentions message when a single message was pinned, with no previously pinned messages", () => {
- const event = mockPinnedEvent(['message-1']);
- const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
- });
-
- it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
- const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
- const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
- });
-
- it("shows generic text when multiple messages were pinned", () => {
- const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
- const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
- });
-});
-
-describe("TextForPinnedEvent - newly unpinned message(s)", () => {
- SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
-
- it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
- const event = mockPinnedEvent([], ['message-1']);
- expect(textForEvent(event)).toBe(
- "@foo:example.com unpinned a message from this room. See all pinned messages.",
- );
- });
-
- it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
- const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
- expect(textForEvent(event)).toBe(
- "@foo:example.com unpinned a message from this room. See all pinned messages.",
- );
- });
-
- it("shows generic text when multiple messages were unpinned", () => {
- const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
- expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
- });
-});
-
-describe("TextForPinnedEvent - newly unpinned message(s) (JSX)", () => {
- SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
-
- it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
- const event = mockPinnedEvent([], ['message-1']);
- const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
- });
-
- it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
- const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
- const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
- });
-
- it("shows generic text when multiple messages were unpinned", () => {
- const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
- const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+ it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
+ expect(textForEvent(event)).toBe(
+ "@foo:example.com pinned a message to this room. See all pinned messages.",
+ );
+
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("shows generic text when multiple messages were pinned", () => {
+ const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
+ expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
+
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
+ const event = mockPinnedEvent([], ['message-1']);
+ expect(textForEvent(event)).toBe(
+ "@foo:example.com unpinned a message from this room. See all pinned messages.",
+ );
+
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
+ const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
+ expect(textForEvent(event)).toBe(
+ "@foo:example.com unpinned a message from this room. See all pinned messages.",
+ );
+
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
+
+ it("shows generic text when multiple messages were unpinned", () => {
+ const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
+ expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
+
+ const component = renderer.create(textForEvent(event, true));
+ expect(component.toJSON()).toMatchSnapshot();
+ });
});
});
diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/__snapshots__/TextForEvent-test.ts.snap
index 124f7e0663..2b73dbeb3d 100644
--- a/test/__snapshots__/TextForEvent-test.ts.snap
+++ b/test/__snapshots__/TextForEvent-test.ts.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`TextForPinnedEvent - newly pinned message(s) (JSX) mentions message when a single message was pinned, with multiple previously pinned messages 1`] = `
+exports[`TextForEvent TextForPinnedEvent mentions message when a single message was pinned, with multiple previously pinned messages 1`] = `
@foo:example.com pinned
@@ -20,7 +20,7 @@ exports[`TextForPinnedEvent - newly pinned message(s) (JSX) mentions message whe
`;
-exports[`TextForPinnedEvent - newly pinned message(s) (JSX) mentions message when a single message was pinned, with no previously pinned messages 1`] = `
+exports[`TextForEvent TextForPinnedEvent mentions message when a single message was pinned, with no previously pinned messages 1`] = `
@foo:example.com pinned
@@ -40,23 +40,7 @@ exports[`TextForPinnedEvent - newly pinned message(s) (JSX) mentions message whe
`;
-exports[`TextForPinnedEvent - newly pinned message(s) (JSX) shows generic text when multiple messages were pinned 1`] = `
-
-
- @foo:example.com changed the
-
-
- pinned messages
-
-
- for the room.
-
-
-`;
-
-exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message when a single message was unpinned, with a single message previously pinned 1`] = `
+exports[`TextForEvent TextForPinnedEvent mentions message when a single message was unpinned, with a single message previously pinned 1`] = `
@foo:example.com unpinned
@@ -76,7 +60,7 @@ exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message w
`;
-exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message when a single message was unpinned, with multiple previously pinned messages 1`] = `
+exports[`TextForEvent TextForPinnedEvent mentions message when a single message was unpinned, with multiple previously pinned messages 1`] = `
@foo:example.com unpinned
@@ -96,7 +80,23 @@ exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) mentions message w
`;
-exports[`TextForPinnedEvent - newly unpinned message(s) (JSX) shows generic text when multiple messages were unpinned 1`] = `
+exports[`TextForEvent TextForPinnedEvent shows generic text when multiple messages were pinned 1`] = `
+
+
+ @foo:example.com changed the
+
+
+ pinned messages
+
+
+ for the room.
+
+
+`;
+
+exports[`TextForEvent TextForPinnedEvent shows generic text when multiple messages were unpinned 1`] = `
@foo:example.com changed the
From 79cf69bedb776175c3c7409394091f3bef76c24e Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Wed, 11 Aug 2021 11:40:33 +0100
Subject: [PATCH 066/619] Refactor tests so that snapshots aren't used
Signed-off-by: Paulo Pinto
---
test/TextForEvent-test.ts | 85 +++++++++-----
test/__snapshots__/TextForEvent-test.ts.snap | 113 -------------------
2 files changed, 59 insertions(+), 139 deletions(-)
delete mode 100644 test/__snapshots__/TextForEvent-test.ts.snap
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index b50996c186..ac9c8eba4d 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -23,64 +23,97 @@ function mockPinnedEvent(
});
}
+// Helper function that renders a component to a plain text string.
+// Once snapshots are introduced in tests, this function will no longer be necessary,
+// and should be replaced with snapshots.
+function renderComponent(component): string {
+ const serializeObject = (object): string => {
+ if (typeof object === 'string') {
+ return object === ' ' ? '' : object;
+ }
+
+ if (Array.isArray(object) && object.length === 1 && typeof object[0] === 'string') {
+ return object[0];
+ }
+
+ if (object['type'] !== undefined && typeof object['children'] !== undefined) {
+ return serializeObject(object.children);
+ }
+
+ if (!Array.isArray(object)) {
+ return '';
+ }
+
+ return object.map(child => {
+ return serializeObject(child);
+ }).join('');
+ };
+
+ return serializeObject(component.toJSON());
+}
+
describe('TextForEvent', () => {
describe("TextForPinnedEvent", () => {
SettingsStore.setValue("feature_pinning", null, SettingLevel.DEVICE, true);
it("mentions message when a single message was pinned, with no previously pinned messages", () => {
const event = mockPinnedEvent(['message-1']);
- expect(textForEvent(event)).toBe(
- "@foo:example.com pinned a message to this room. See all pinned messages.",
- );
-
+ const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+
+ const expectedText = "@foo:example.com pinned a message to this room. See all pinned messages.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
});
it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
- expect(textForEvent(event)).toBe(
- "@foo:example.com pinned a message to this room. See all pinned messages.",
- );
-
+ const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+
+ const expectedText = "@foo:example.com pinned a message to this room. See all pinned messages.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
});
it("shows generic text when multiple messages were pinned", () => {
const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
- expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
-
+ const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+
+ const expectedText = "@foo:example.com changed the pinned messages for the room.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
});
it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
const event = mockPinnedEvent([], ['message-1']);
- expect(textForEvent(event)).toBe(
- "@foo:example.com unpinned a message from this room. See all pinned messages.",
- );
-
+ const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+
+ const expectedText = "@foo:example.com unpinned a message from this room. See all pinned messages.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
});
it("mentions message when a single message was unpinned, with multiple previously pinned messages", () => {
const event = mockPinnedEvent(['message-2'], ['message-1', 'message-2']);
- expect(textForEvent(event)).toBe(
- "@foo:example.com unpinned a message from this room. See all pinned messages.",
- );
-
+ const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+
+ const expectedText = "@foo:example.com unpinned a message from this room. See all pinned messages.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
});
it("shows generic text when multiple messages were unpinned", () => {
const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
- expect(textForEvent(event)).toBe("@foo:example.com changed the pinned messages for the room.");
-
+ const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
- expect(component.toJSON()).toMatchSnapshot();
+
+ const expectedText = "@foo:example.com changed the pinned messages for the room.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
});
});
});
diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/__snapshots__/TextForEvent-test.ts.snap
deleted file mode 100644
index 2b73dbeb3d..0000000000
--- a/test/__snapshots__/TextForEvent-test.ts.snap
+++ /dev/null
@@ -1,113 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`TextForEvent TextForPinnedEvent mentions message when a single message was pinned, with multiple previously pinned messages 1`] = `
-
-
- @foo:example.com pinned
-
- a message
-
- to this room. See all
-
- pinned messages
-
- .
-
-
-`;
-
-exports[`TextForEvent TextForPinnedEvent mentions message when a single message was pinned, with no previously pinned messages 1`] = `
-
-
- @foo:example.com pinned
-
- a message
-
- to this room. See all
-
- pinned messages
-
- .
-
-
-`;
-
-exports[`TextForEvent TextForPinnedEvent mentions message when a single message was unpinned, with a single message previously pinned 1`] = `
-
-
- @foo:example.com unpinned
-
- a message
-
- from this room. See all
-
- pinned messages
-
- .
-
-
-`;
-
-exports[`TextForEvent TextForPinnedEvent mentions message when a single message was unpinned, with multiple previously pinned messages 1`] = `
-
-
- @foo:example.com unpinned
-
- a message
-
- from this room. See all
-
- pinned messages
-
- .
-
-
-`;
-
-exports[`TextForEvent TextForPinnedEvent shows generic text when multiple messages were pinned 1`] = `
-
-
- @foo:example.com changed the
-
-
- pinned messages
-
-
- for the room.
-
-
-`;
-
-exports[`TextForEvent TextForPinnedEvent shows generic text when multiple messages were unpinned 1`] = `
-
-
- @foo:example.com changed the
-
-
- pinned messages
-
-
- for the room.
-
-
-`;
From ca8832f6faaeef9655000520d60f30fd502bbf83 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Wed, 11 Aug 2021 14:47:49 +0100
Subject: [PATCH 067/619] Fix test case
The test case is:
"mentions message when a single message was pinned, with multiple previously pinned messages"
However, the test case was also unpinning messages. That is now fixed.
Signed-off-by: Paulo Pinto
---
test/TextForEvent-test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index ac9c8eba4d..30bc68751a 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -67,7 +67,7 @@ describe('TextForEvent', () => {
});
it("mentions message when a single message was pinned, with multiple previously pinned messages", () => {
- const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2']);
+ const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1', 'message-2']);
const plainText = textForEvent(event);
const component = renderer.create(textForEvent(event, true));
From a51b1141717fa12e7fb2517bd2ff754286f9a368 Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Wed, 11 Aug 2021 14:51:36 +0100
Subject: [PATCH 068/619] Change order of test cases
Just moving test cases so that "generic message" ones are grouped at the bottom.
Signed-off-by: Paulo Pinto
---
test/TextForEvent-test.ts | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index 30bc68751a..285d4de232 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -76,16 +76,6 @@ describe('TextForEvent', () => {
expect(renderComponent(component)).toBe(expectedText);
});
- it("shows generic text when multiple messages were pinned", () => {
- const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
- const plainText = textForEvent(event);
- const component = renderer.create(textForEvent(event, true));
-
- const expectedText = "@foo:example.com changed the pinned messages for the room.";
- expect(plainText).toBe(expectedText);
- expect(renderComponent(component)).toBe(expectedText);
- });
-
it("mentions message when a single message was unpinned, with a single message previously pinned", () => {
const event = mockPinnedEvent([], ['message-1']);
const plainText = textForEvent(event);
@@ -106,6 +96,16 @@ describe('TextForEvent', () => {
expect(renderComponent(component)).toBe(expectedText);
});
+ it("shows generic text when multiple messages were pinned", () => {
+ const event = mockPinnedEvent(['message-1', 'message-2', 'message-3'], ['message-1']);
+ const plainText = textForEvent(event);
+ const component = renderer.create(textForEvent(event, true));
+
+ const expectedText = "@foo:example.com changed the pinned messages for the room.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
+ });
+
it("shows generic text when multiple messages were unpinned", () => {
const event = mockPinnedEvent(['message-3'], ['message-1', 'message-2', 'message-3']);
const plainText = textForEvent(event);
From aaeb9969a47db6abdf7200668ea35d4f68c1d52e Mon Sep 17 00:00:00 2001
From: Paulo Pinto
Date: Wed, 11 Aug 2021 14:56:59 +0100
Subject: [PATCH 069/619] Handle case where one message is pinned, and another
unpinned
Signed-off-by: Paulo Pinto
---
src/TextForEvent.tsx | 4 ++--
test/TextForEvent-test.ts | 10 ++++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/TextForEvent.tsx b/src/TextForEvent.tsx
index a85d44ecb3..1c5e9ec6f0 100644
--- a/src/TextForEvent.tsx
+++ b/src/TextForEvent.tsx
@@ -435,7 +435,7 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
const newlyPinned = pinned.filter(item => previouslyPinned.indexOf(item) < 0);
const newlyUnpinned = previouslyPinned.filter(item => pinned.indexOf(item) < 0);
- if (newlyPinned.length === 1) {
+ if (newlyPinned.length === 1 && newlyUnpinned.length === 0) {
// A single message was pinned, include a link to that message.
if (allowJSX) {
const messageId = newlyPinned.pop();
@@ -463,7 +463,7 @@ function textForPinnedEvent(event: MatrixEvent, allowJSX: boolean): () => string
return () => _t("%(senderName)s pinned a message to this room. See all pinned messages.", { senderName });
}
- if (newlyUnpinned.length === 1) {
+ if (newlyUnpinned.length === 1 && newlyPinned.length === 0) {
// A single message was unpinned, include a link to that message.
if (allowJSX) {
const messageId = newlyUnpinned.pop();
diff --git a/test/TextForEvent-test.ts b/test/TextForEvent-test.ts
index 285d4de232..b8a459af67 100644
--- a/test/TextForEvent-test.ts
+++ b/test/TextForEvent-test.ts
@@ -115,5 +115,15 @@ describe('TextForEvent', () => {
expect(plainText).toBe(expectedText);
expect(renderComponent(component)).toBe(expectedText);
});
+
+ it("shows generic text when one message was pinned, and another unpinned", () => {
+ const event = mockPinnedEvent(['message-2'], ['message-1']);
+ const plainText = textForEvent(event);
+ const component = renderer.create(textForEvent(event, true));
+
+ const expectedText = "@foo:example.com changed the pinned messages for the room.";
+ expect(plainText).toBe(expectedText);
+ expect(renderComponent(component)).toBe(expectedText);
+ });
});
});
From d74e9c4f905327210e61ecf82982ac52a0ee49a6 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Wed, 11 Aug 2021 16:47:14 +0100
Subject: [PATCH 070/619] Remove impossible space hierarchy size string
---
res/css/structures/_SpaceHierarchy.scss | 6 ++++++
src/components/structures/SpaceHierarchy.tsx | 14 +-------------
src/i18n/strings/en_EN.json | 6 ++----
3 files changed, 9 insertions(+), 17 deletions(-)
diff --git a/res/css/structures/_SpaceHierarchy.scss b/res/css/structures/_SpaceHierarchy.scss
index d79eed1a64..f5810b8dfe 100644
--- a/res/css/structures/_SpaceHierarchy.scss
+++ b/res/css/structures/_SpaceHierarchy.scss
@@ -70,6 +70,12 @@ limitations under the License.
font-size: $font-15px;
line-height: $font-24px;
color: $primary-fg-color;
+ margin-bottom: 12px;
+
+ > h4 {
+ font-weight: $font-semi-bold;
+ margin: 0;
+ }
.mx_AccessibleButton {
padding: 4px 12px;
diff --git a/src/components/structures/SpaceHierarchy.tsx b/src/components/structures/SpaceHierarchy.tsx
index f13fc7f208..c55902cf70 100644
--- a/src/components/structures/SpaceHierarchy.tsx
+++ b/src/components/structures/SpaceHierarchy.tsx
@@ -444,18 +444,6 @@ const SpaceHierarchy = ({
if (loading) {
content = ;
} else {
- const numRooms = Array.from(filteredRoomSet).filter(r => !r.room_type).length;
- const numSpaces = filteredRoomSet.size - numRooms - 1; // -1 at the end to exclude the space we are looking at
-
- let countsStr;
- if (numSpaces > 1) {
- countsStr = _t("%(count)s rooms and %(numSpaces)s spaces", { count: numRooms, numSpaces });
- } else if (numSpaces > 0) {
- countsStr = _t("%(count)s rooms and 1 space", { count: numRooms, numSpaces });
- } else {
- countsStr = _t("%(count)s rooms", { count: numRooms, numSpaces });
- }
-
let manageButtons;
if (space.getMyMembership() === "join" && space.currentState.maySendStateEvent(EventType.SpaceChild, userId)) {
const selectedRelations = Array.from(selected.keys()).flatMap(parentId => {
@@ -582,7 +570,7 @@ const SpaceHierarchy = ({
content = <>
- { countsStr }
+
{ query.trim() ? _t("Results") : _t("Rooms and spaces") }
{ additionalButtons }
{ manageButtons }
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 64a3fe2951..9f41542007 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -2811,10 +2811,6 @@
"This room is suggested as a good one to join": "This room is suggested as a good one to join",
"Suggested": "Suggested",
"Your server does not support showing space hierarchies.": "Your server does not support showing space hierarchies.",
- "%(count)s rooms and %(numSpaces)s spaces|other": "%(count)s rooms and %(numSpaces)s spaces",
- "%(count)s rooms and %(numSpaces)s spaces|one": "%(count)s room and %(numSpaces)s spaces",
- "%(count)s rooms and 1 space|other": "%(count)s rooms and 1 space",
- "%(count)s rooms and 1 space|one": "%(count)s room and 1 space",
"Select a room below first": "Select a room below first",
"Failed to remove some rooms. Try again later": "Failed to remove some rooms. Try again later",
"Removing...": "Removing...",
@@ -2822,6 +2818,8 @@
"Mark as suggested": "Mark as suggested",
"No results found": "No results found",
"You may want to try a different search or check for typos.": "You may want to try a different search or check for typos.",
+ "Results": "Results",
+ "Rooms and spaces": "Rooms and spaces",
"Search names and descriptions": "Search names and descriptions",
"Private space": "Private space",
" invites you": " invites you",
From ee0eda794757c426db1c55c1b9b009a36ed43f58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Wed, 11 Aug 2021 17:54:18 +0200
Subject: [PATCH 071/619] Add ignoreSelfEvent
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../algorithms/tag-sorting/RecentAlgorithm.ts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
index f47458d1b1..23fff70eef 100644
--- a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
+++ b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
@@ -20,6 +20,25 @@ import { IAlgorithm } from "./IAlgorithm";
import { MatrixClientPeg } from "../../../../MatrixClientPeg";
import * as Unread from "../../../../Unread";
import { EffectiveMembership, getEffectiveMembership } from "../../../../utils/membership";
+import { EventType } from "matrix-js-sdk/src/@types/event";
+import { MatrixEvent } from "matrix-js-sdk/src/models/event";
+
+const ignoreSelfEvent = (event: MatrixEvent): boolean => {
+ const type = event.getType();
+ const content = event.getContent();
+ const prevContent = event.getPrevContent();
+
+ // Never ignore membership changes
+ if (type === EventType.RoomMember && prevContent.membership !== content.membership) return false;
+
+ // Ignore status changes
+ // XXX: This should be an enum
+ if (type === "im.vector.user_status") return true;
+ // Ignore display name changes
+ if (type === EventType.RoomMember && prevContent.displayname !== content.displayname) return true;
+
+ return false;
+};
export const sortRooms = (rooms: Room[]): Room[] => {
// We cache the timestamp lookup to avoid iterating forever on the timeline
From 1f98ea4562844a64157e9629b184903bc017a068 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Wed, 11 Aug 2021 17:54:27 +0200
Subject: [PATCH 072/619] Use ignoreSelfEvent
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../room-list/algorithms/tag-sorting/RecentAlgorithm.ts | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
index 23fff70eef..539cfde726 100644
--- a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
+++ b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
@@ -87,7 +87,10 @@ export const sortRooms = (rooms: Room[]): Room[] => {
const ev = r.timeline[i];
if (!ev.getTs()) continue; // skip events that don't have timestamps (tests only?)
- if (ev.getSender() === myUserId || Unread.eventTriggersUnreadCount(ev)) {
+ if (
+ (ev.getSender() === myUserId && !ignoreSelfEvent(ev)) ||
+ Unread.eventTriggersUnreadCount(ev)
+ ) {
return ev.getTs();
}
}
From 38645d90545d28f0726fde571b18e0b230a0f18d Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Wed, 11 Aug 2021 17:07:53 +0100
Subject: [PATCH 073/619] Fix loading state issues for spaces pagination
---
src/components/structures/SpaceHierarchy.tsx | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/components/structures/SpaceHierarchy.tsx b/src/components/structures/SpaceHierarchy.tsx
index c55902cf70..cea6a568e7 100644
--- a/src/components/structures/SpaceHierarchy.tsx
+++ b/src/components/structures/SpaceHierarchy.tsx
@@ -441,7 +441,7 @@ const SpaceHierarchy = ({
let content: JSX.Element;
let loader: JSX.Element;
- if (loading) {
+ if (loading && !rooms.length) {
content = ;
} else {
let manageButtons;
@@ -558,9 +558,11 @@ const SpaceHierarchy = ({
/>
>;
- loader =
-
-
;
+ if (hierarchy.canLoadMore) {
+ loader =
+
+
;
+ }
} else {
results =
{ _t("No results found") }
From 8216a35a56d8962f1d172ff43fe2a467a7677b6e Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Wed, 11 Aug 2021 21:02:30 +0100
Subject: [PATCH 074/619] remove spurious mxclient stub
---
test/test-utils.js | 3 ---
1 file changed, 3 deletions(-)
diff --git a/test/test-utils.js b/test/test-utils.js
index b337828b68..11a3400fbb 100644
--- a/test/test-utils.js
+++ b/test/test-utils.js
@@ -84,9 +84,6 @@ export function createTestClient() {
generateClientSecret: () => "t35tcl1Ent5ECr3T",
isGuest: () => false,
isCryptoEnabled: () => false,
- getSpaceSummary: jest.fn().mockReturnValue({
- rooms: [],
- }),
getRoomHierarchy: jest.fn().mockReturnValue({
rooms: [],
}),
From 7265874217e7841ea1acc455026f0896c91facb8 Mon Sep 17 00:00:00 2001
From: Szimszon
Date: Wed, 11 Aug 2021 20:33:48 +0000
Subject: [PATCH 075/619] Translated using Weblate (Hungarian)
Currently translated at 100.0% (3116 of 3116 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/hu/
---
src/i18n/strings/hu.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index a616d0cc23..227515c414 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -3638,5 +3638,6 @@
"Stop sharing your screen": "Képernyőmegosztás kikapcsolása",
"Stop the camera": "Kamera kikapcsolása",
"Start the camera": "Kamera bekapcsolása",
- "Surround selected text when typing special characters": "Kijelölt szöveg körülvétele speciális karakterek beírásakor"
+ "Surround selected text when typing special characters": "Kijelölt szöveg körülvétele speciális karakterek beírásakor",
+ "Don't send read receipts": "Ne küldjön olvasási visszajelzést"
}
From 23b59b15e23760c1adfdc581c6d11bff2b603901 Mon Sep 17 00:00:00 2001
From: waclaw66
Date: Wed, 11 Aug 2021 19:22:09 +0000
Subject: [PATCH 076/619] Translated using Weblate (Czech)
Currently translated at 100.0% (3116 of 3116 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/cs/
---
src/i18n/strings/cs.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json
index 04956ba68c..5fcd597800 100644
--- a/src/i18n/strings/cs.json
+++ b/src/i18n/strings/cs.json
@@ -194,7 +194,7 @@
"Return to login screen": "Vrátit k přihlašovací obrazovce",
"%(brand)s does not have permission to send you notifications - please check your browser settings": "%(brand)s není oprávněn posílat vám oznámení – zkontrolujte prosím nastavení svého prohlížeče",
"%(brand)s was not given permission to send notifications - please try again": "%(brand)s nebyl oprávněn k posílání oznámení – zkuste to prosím znovu",
- "%(brand)s version:": "verze %(brand)s:",
+ "%(brand)s version:": "Verze %(brand)s:",
"Room %(roomId)s not visible": "Místnost %(roomId)s není viditelná",
"Room Colour": "Barva místnosti",
"%(roomName)s does not exist.": "%(roomName)s neexistuje.",
From f2dccbc9f7bc58ee46609c31650d3f18af6cde28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 09:38:57 +0200
Subject: [PATCH 077/619] Use function syntax
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
.../room-list/algorithms/tag-sorting/RecentAlgorithm.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
index 539cfde726..5ddfd96c8a 100644
--- a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
+++ b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
@@ -23,7 +23,7 @@ import { EffectiveMembership, getEffectiveMembership } from "../../../../utils/m
import { EventType } from "matrix-js-sdk/src/@types/event";
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
-const ignoreSelfEvent = (event: MatrixEvent): boolean => {
+export function ignoreSelfEvent(event: MatrixEvent): boolean {
const type = event.getType();
const content = event.getContent();
const prevContent = event.getPrevContent();
@@ -38,7 +38,7 @@ const ignoreSelfEvent = (event: MatrixEvent): boolean => {
if (type === EventType.RoomMember && prevContent.displayname !== content.displayname) return true;
return false;
-};
+}
export const sortRooms = (rooms: Room[]): Room[] => {
// We cache the timestamp lookup to avoid iterating forever on the timeline
From 0a4a1506d412cdec610196af73fca6401fead15b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 09:40:26 +0200
Subject: [PATCH 078/619] Use ignoreSelfEvent in the RoomListStore (which
doesn't work!)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
src/stores/room-list/RoomListStore.ts | 4 ++++
.../room-list/algorithms/tag-sorting/RecentAlgorithm.ts | 5 +----
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/stores/room-list/RoomListStore.ts b/src/stores/room-list/RoomListStore.ts
index 1a5ef0484e..6a80bcd1e5 100644
--- a/src/stores/room-list/RoomListStore.ts
+++ b/src/stores/room-list/RoomListStore.ts
@@ -38,6 +38,7 @@ import { SpaceWatcher } from "./SpaceWatcher";
import SpaceStore from "../SpaceStore";
import { Action } from "../../dispatcher/actions";
import { SettingUpdatedPayload } from "../../dispatcher/payloads/SettingUpdatedPayload";
+import { ignoreSelfEvent } from "./algorithms/tag-sorting/RecentAlgorithm";
interface IState {
tagsEnabled?: boolean;
@@ -270,6 +271,9 @@ export class RoomListStoreClass extends AsyncStoreWithClient {
// Ignore non-live events (backfill)
if (!eventPayload.isLiveEvent || !payload.isLiveUnfilteredRoomTimelineEvent) return;
+ // Avoid re-ordering on status, profile etc. changes
+ if (ignoreSelfEvent(eventPayload.event)) return;
+
const roomId = eventPayload.event.getRoomId();
const room = this.matrixClient.getRoom(roomId);
const tryUpdate = async (updatedRoom: Room) => {
diff --git a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
index 5ddfd96c8a..bbfac876bc 100644
--- a/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
+++ b/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts
@@ -87,10 +87,7 @@ export const sortRooms = (rooms: Room[]): Room[] => {
const ev = r.timeline[i];
if (!ev.getTs()) continue; // skip events that don't have timestamps (tests only?)
- if (
- (ev.getSender() === myUserId && !ignoreSelfEvent(ev)) ||
- Unread.eventTriggersUnreadCount(ev)
- ) {
+ if (ev.getSender() === myUserId || Unread.eventTriggersUnreadCount(ev)) {
return ev.getTs();
}
}
From dc3fd697368b8fdffbcdfa5702d8d918ad16f007 Mon Sep 17 00:00:00 2001
From: Jeff Huang
Date: Thu, 12 Aug 2021 03:39:58 +0000
Subject: [PATCH 079/619] Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (3117 of 3117 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/zh_Hant/
---
src/i18n/strings/zh_Hant.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index 837e371070..b10a4c7273 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -3648,5 +3648,7 @@
"Surround selected text when typing special characters": "輸入特殊字元以環繞選取的文字",
"%(oneUser)schanged the pinned messages for the room %(count)s times.|other": "%(oneUser)s 變更了聊天室的釘選訊息 %(count)s 次。",
"%(severalUsers)schanged the pinned messages for the room %(count)s times.|other": "%(severalUsers)s 變更了聊天室的釘選訊息 %(count)s 次。",
- "Olm version:": "Olm 版本:"
+ "Olm version:": "Olm 版本:",
+ "Delete avatar": "刪除大頭照",
+ "Don't send read receipts": "不要傳送讀取回條"
}
From c4e4b913023497c9a4ab31bab234f44691bb764e Mon Sep 17 00:00:00 2001
From: Tirifto
Date: Wed, 11 Aug 2021 23:53:52 +0000
Subject: [PATCH 080/619] Translated using Weblate (Esperanto)
Currently translated at 92.7% (2891 of 3117 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index d70b933e31..c97adeb05f 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -3337,5 +3337,31 @@
"Identity server": "Identiga servilo",
"Identity server (%(server)s)": "Identiga servilo (%(server)s)",
"Could not connect to identity server": "Ne povis konektiĝi al identiga servilo",
- "Not a valid identity server (status code %(code)s)": "Nevalida identiga servilo (statkodo %(code)s)"
+ "Not a valid identity server (status code %(code)s)": "Nevalida identiga servilo (statkodo %(code)s)",
+ "Silence call": "Silenta voko",
+ "Sound on": "Kun sono",
+ "User %(userId)s is already invited to the room": "Uzanto %(userId)s jam invitiĝis al la ĉambro",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s ŝanĝis la fiksitajn mesaĝojn de la ĉambro.",
+ "%(senderName)s kicked %(targetName)s": "%(senderName)s forpelis uzanton %(targetName)s",
+ "%(senderName)s kicked %(targetName)s: %(reason)s": "%(senderName)s forpelis uzanton %(targetName)s: %(reason)s",
+ "%(senderName)s unbanned %(targetName)s": "%(senderName)s malforbaris uzanton %(targetName)s",
+ "%(targetName)s left the room": "%(targetName)s foriris de la ĉambro",
+ "%(targetName)s left the room: %(reason)s": "%(targetName)s foriris de la ĉambro: %(reason)s",
+ "%(targetName)s rejected the invitation": "%(targetName)s rifuzis la inviton",
+ "%(targetName)s joined the room": "%(targetName)s aliĝis al la ĉambro",
+ "%(senderName)s made no change": "%(senderName)s faris nenian ŝanĝon",
+ "%(senderName)s set a profile picture": "%(senderName)s agordis profilbildon",
+ "%(senderName)s changed their profile picture": "%(senderName)s ŝanĝis sian profilbildon",
+ "%(senderName)s removed their profile picture": "%(senderName)s forigis sian profilbildon",
+ "%(senderName)s removed their display name (%(oldDisplayName)s)": "%(senderName)s forigis sian prezentan nomon (%(oldDisplayName)s)",
+ "%(senderName)s set their display name to %(displayName)s": "%(senderName)s ŝanĝis sian prezentan nomon al %(displayName)s",
+ "%(oldDisplayName)s changed their display name to %(displayName)s": "%(oldDisplayName)s ŝanĝis sian prezentan nomon al %(displayName)s",
+ "%(senderName)s banned %(targetName)s": "%(senderName)s forbaris uzanton %(targetName)s",
+ "%(senderName)s banned %(targetName)s: %(reason)s": "%(senderName)s forbaris uzanton %(targetName)s: %(reason)s",
+ "%(targetName)s accepted an invitation": "%(targetName)s akceptis inviton",
+ "%(targetName)s accepted the invitation for %(displayName)s": "%(targetName)s akceptis la inviton por %(displayName)s",
+ "Some invites couldn't be sent": "Ne povis sendi iujn invitojn",
+ "We sent the others, but the below people couldn't be invited to ": "Ni sendis la aliajn, sed la ĉi-subaj personoj ne povis ricevi inviton al ",
+ "Transfer Failed": "Malsukcesis transdono",
+ "Unable to transfer call": "Ne povas transdoni vokon"
}
From 8f1e5b7cad9962891cf1bbc1dff7c5626d21810b Mon Sep 17 00:00:00 2001
From: waclaw66
Date: Thu, 12 Aug 2021 05:08:17 +0000
Subject: [PATCH 081/619] Translated using Weblate (Czech)
Currently translated at 100.0% (3117 of 3117 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/cs/
---
src/i18n/strings/cs.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json
index 5fcd597800..eb9f36c9a8 100644
--- a/src/i18n/strings/cs.json
+++ b/src/i18n/strings/cs.json
@@ -3564,5 +3564,6 @@
"%(oneUser)schanged the pinned messages for the room %(count)s times.|other": "%(oneUser)s%(count)s krát změnil(a) připnuté zprávy místnosti.",
"%(severalUsers)schanged the pinned messages for the room %(count)s times.|other": "%(severalUsers)s%(count)s krát změnili připnuté zprávy místnosti.",
"Olm version:": "Verze Olm:",
- "Don't send read receipts": "Neposílat potvrzení o přečtení"
+ "Don't send read receipts": "Neposílat potvrzení o přečtení",
+ "Delete avatar": "Smazat avatar"
}
From d51e2e3500e3481c58d8c98d1aa9a9ca1af4187f Mon Sep 17 00:00:00 2001
From: XoseM
Date: Thu, 12 Aug 2021 05:43:06 +0000
Subject: [PATCH 082/619] Translated using Weblate (Galician)
Currently translated at 100.0% (3117 of 3117 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/gl/
---
src/i18n/strings/gl.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json
index 90c120abb1..731d386b38 100644
--- a/src/i18n/strings/gl.json
+++ b/src/i18n/strings/gl.json
@@ -3645,5 +3645,7 @@
"Stop sharing your screen": "Deixar de compartir a pantalla",
"Stop the camera": "Pechar a cámara",
"Start the camera": "Abrir a cámara",
- "Surround selected text when typing special characters": "Rodea o texto seleccionado ao escribir caracteres especiais"
+ "Surround selected text when typing special characters": "Rodea o texto seleccionado ao escribir caracteres especiais",
+ "Delete avatar": "Eliminar avatar",
+ "Don't send read receipts": "Non enviar confirmación de lectura"
}
From 31ffe33cf3ff5d9112f533b777c3a952783a088a Mon Sep 17 00:00:00 2001
From: Nikita Epifanov
Date: Thu, 12 Aug 2021 10:15:03 +0000
Subject: [PATCH 083/619] Translated using Weblate (Russian)
Currently translated at 98.3% (3067 of 3117 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/ru/
---
src/i18n/strings/ru.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json
index 789a38811f..6d6bf86559 100644
--- a/src/i18n/strings/ru.json
+++ b/src/i18n/strings/ru.json
@@ -3579,5 +3579,7 @@
"Unable to transfer call": "Не удалось перевести звонок",
"Olm version:": "Версия Olm:",
"%(oneUser)schanged the pinned messages for the room %(count)s times.|other": "%(oneUser)s изменил(а) прикреплённые сообщения в комнате %(count)s раз.",
- "%(severalUsers)schanged the pinned messages for the room %(count)s times.|other": "%(severalUsers)s изменили прикреплённые сообщения в комнате %(count)s раз."
+ "%(severalUsers)schanged the pinned messages for the room %(count)s times.|other": "%(severalUsers)s изменили прикреплённые сообщения в комнате %(count)s раз.",
+ "Delete avatar": "Удалить аватар",
+ "Don't send read receipts": "Не отправлять уведомления о прочтении"
}
From 0f778479006f0fed737a6d8202b50eb31b16bf7b Mon Sep 17 00:00:00 2001
From: jelv
Date: Thu, 12 Aug 2021 10:55:58 +0000
Subject: [PATCH 084/619] Translated using Weblate (Dutch)
Currently translated at 99.4% (3124 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/nl/
---
src/i18n/strings/nl.json | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 1dc7cd04f4..2de5479fc8 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -3533,5 +3533,16 @@
"Start sharing your screen": "Schermdelen starten",
"Stop sharing your screen": "Schermdelen stoppen",
"Stop the camera": "Camera stoppen",
- "Start the camera": "Camera starten"
+ "Start the camera": "Camera starten",
+ "If a community isn't shown you may not have permission to convert it.": "Als een gemeenschap niet zichtbaar is heeft u geen rechten om hem om te zetten.",
+ "Show my Communities": "Mijn gemeenschappen weergeven",
+ "Communities have been archived to make way for Spaces but you can convert your communities into Spaces below. Converting will ensure your conversations get the latest features.": "Gemeenschappen zijn gearchiveerd om ruimte te maken voor Spaces, maar u kunt uw gemeenschap omzetten naar een space hieronder. Hierdoor bent u er zeker van dat uw gesprekken de nieuwste functies krijgen.",
+ "Create Space": "Space aanmaken",
+ "Open Space": "Space openen",
+ "To join an existing space you'll need an invite.": "Om deel te nemen aan een bestaande space heeft u een uitnodiging nodig.",
+ "You can also create a Space from a community.": "U kunt ook een Space maken van een gemeenschap.",
+ "You can change this later.": "U kan dit later aanpassen.",
+ "What kind of Space do you want to create?": "Wat voor soort Space wilt u maken?",
+ "Delete avatar": "Afbeelding verwijderen",
+ "Don't send read receipts": "Geen leesbevestigingen versturen"
}
From 85b1f166e8fb122d7db8a69c9c659164de6e9823 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 12 Aug 2021 12:03:14 +0100
Subject: [PATCH 085/619] post-merge tidy up
---
res/css/structures/_SpaceHierarchy.scss | 8 +-
src/components/structures/SpaceHierarchy.tsx | 264 ++++++++++---------
src/i18n/strings/en_EN.json | 8 +-
3 files changed, 154 insertions(+), 126 deletions(-)
diff --git a/res/css/structures/_SpaceHierarchy.scss b/res/css/structures/_SpaceHierarchy.scss
index 0cefaf252f..74dfb5da6b 100644
--- a/res/css/structures/_SpaceHierarchy.scss
+++ b/res/css/structures/_SpaceHierarchy.scss
@@ -116,6 +116,12 @@ limitations under the License.
}
}
+ .mx_SpaceHierarchy_list {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+
.mx_SpaceHierarchy_roomCount {
> h3 {
display: inline;
@@ -264,7 +270,7 @@ limitations under the License.
}
}
- li.mx_SpaceRoomDirectory_roomTileWrapper {
+ li.mx_SpaceHierarchy_roomTileWrapper {
list-style: none;
}
diff --git a/src/components/structures/SpaceHierarchy.tsx b/src/components/structures/SpaceHierarchy.tsx
index 120f82f717..a0d4d9c42a 100644
--- a/src/components/structures/SpaceHierarchy.tsx
+++ b/src/components/structures/SpaceHierarchy.tsx
@@ -23,15 +23,18 @@ import React, {
useState,
KeyboardEvent,
KeyboardEventHandler,
+ useContext,
+ SetStateAction,
+ Dispatch,
} from "react";
import { Room } from "matrix-js-sdk/src/models/room";
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
import { IHierarchyRelation, IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
+import { MatrixClient } from "matrix-js-sdk/src/matrix";
import classNames from "classnames";
import { sortBy } from "lodash";
-import { MatrixClientPeg } from "../../MatrixClientPeg";
import dis from "../../dispatcher/dispatcher";
import defaultDispatcher from "../../dispatcher/dispatcher";
import { _t } from "../../languageHandler";
@@ -53,12 +56,13 @@ import { Action } from "../../dispatcher/actions";
import { Key } from "../../Keyboard";
import { IState, RovingTabIndexProvider, useRovingTabIndex } from "../../accessibility/RovingTabIndex";
import { getDisplayAliasForRoom } from "./RoomDirectory";
+import MatrixClientContext from "../../contexts/MatrixClientContext";
interface IProps {
space: Room;
initialText?: string;
additionalButtons?: ReactNode;
- showRoom(hierarchy: RoomHierarchy, roomId: string, autoJoin?: boolean): void;
+ showRoom(cli: MatrixClient, hierarchy: RoomHierarchy, roomId: string, autoJoin?: boolean): void;
}
interface ITileProps {
@@ -81,7 +85,7 @@ const Tile: React.FC = ({
numChildRooms,
children,
}) => {
- const cli = MatrixClientPeg.get();
+ const cli = useContext(MatrixClientContext);
const joinedRoom = cli.getRoom(room.room_id)?.getMyMembership() === "join" ? cli.getRoom(room.room_id) : null;
const name = joinedRoom?.name || room.name || room.canonical_alias || room.aliases?.[0]
|| (room.room_type === RoomType.Space ? _t("Unnamed Space") : _t("Unnamed Room"));
@@ -238,7 +242,7 @@ const Tile: React.FC = ({
handled = true;
if (showChildren) {
const childSection = ref.current?.nextElementSibling;
- childSection?.querySelector(".mx_SpaceRoomDirectory_roomTile")?.focus();
+ childSection?.querySelector(".mx_SpaceHierarchy_roomTile")?.focus();
} else {
toggleShowChildren();
}
@@ -253,7 +257,7 @@ const Tile: React.FC = ({
}
return
{ loader }
@@ -674,7 +700,7 @@ const SpaceHierarchy = ({
return <>
create a new room.": "If you can't find the room you're looking for, ask for an invite or create a new room.",
- "Create room": "Create room",
"Private space": "Private space",
" invites you": " invites you",
"To view %(spaceName)s, turn on the Spaces beta": "To view %(spaceName)s, turn on the Spaces beta",
From 8ddaa7faf1eaa705f8b8549d56a4ce114bffa4ff Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 12 Aug 2021 12:08:57 +0100
Subject: [PATCH 086/619] i18n
---
src/i18n/strings/en_EN.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 5edcd93221..0a75cb9dce 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -2843,12 +2843,12 @@
"You don't have permission": "You don't have permission",
"This room is suggested as a good one to join": "This room is suggested as a good one to join",
"Suggested": "Suggested",
- "Your server does not support showing space hierarchies.": "Your server does not support showing space hierarchies.",
"Select a room below first": "Select a room below first",
"Failed to remove some rooms. Try again later": "Failed to remove some rooms. Try again later",
"Removing...": "Removing...",
"Mark as not suggested": "Mark as not suggested",
"Mark as suggested": "Mark as suggested",
+ "Your server does not support showing space hierarchies.": "Your server does not support showing space hierarchies.",
"No results found": "No results found",
"You may want to try a different search or check for typos.": "You may want to try a different search or check for typos.",
"Results": "Results",
From c259e25f529df698352deacf268e6d7cb0b95432 Mon Sep 17 00:00:00 2001
From: jelv
Date: Thu, 12 Aug 2021 12:05:11 +0000
Subject: [PATCH 087/619] Translated using Weblate (Dutch)
Currently translated at 100.0% (3141 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/nl/
---
src/i18n/strings/nl.json | 493 ++++++++++++++++++++-------------------
1 file changed, 255 insertions(+), 238 deletions(-)
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 2de5479fc8..1a51383d50 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -21,8 +21,8 @@
"Autoplay GIFs and videos": "GIF’s en video’s automatisch afspelen",
"%(senderName)s banned %(targetName)s.": "%(senderName)s heeft %(targetName)s verbannen.",
"Ban": "Verbannen",
- "Banned users": "Verbannen gebruikers",
- "Bans user with given id": "Verbant de gebruiker met de gegeven ID",
+ "Banned users": "Verbannen personen",
+ "Bans user with given id": "Verbant de persoon met de gegeven ID",
"Call Timeout": "Oproeptime-out",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Kan geen verbinding maken met de homeserver via HTTP wanneer er een HTTPS-URL in uw browserbalk staat. Gebruik HTTPS of schakel onveilige scripts in.",
"Change Password": "Wachtwoord veranderen",
@@ -83,14 +83,14 @@
"No display name": "Geen weergavenaam",
"No more results": "Geen resultaten meer",
"No results": "Geen resultaten",
- "No users have specific privileges in this room": "Geen enkele gebruiker heeft specifieke bevoegdheden in dit gesprek",
+ "No users have specific privileges in this room": "Geen enkele persoon heeft specifieke bevoegdheden in deze kamer",
"olm version:": "olm-versie:",
"Password": "Wachtwoord",
"Passwords can't be empty": "Wachtwoorden kunnen niet leeg zijn",
"Permissions": "Rechten",
"Phone": "Telefoonnummer",
"Private Chat": "Privégesprek",
- "Privileged Users": "Bevoegde gebruikers",
+ "Privileged Users": "Bevoegde personen",
"Profile": "Profiel",
"Public Chat": "Openbaar gesprek",
"Reason": "Reden",
@@ -140,7 +140,7 @@
"Email address": "E-mailadres",
"Custom": "Aangepast",
"Custom level": "Aangepast niveau",
- "Deops user with given id": "Ontmachtigt gebruiker met de gegeven ID",
+ "Deops user with given id": "Ontmachtigt persoon met de gegeven ID",
"Default": "Standaard",
"Displays action": "Toont actie",
"Emoji": "Emoji",
@@ -151,13 +151,13 @@
"Existing Call": "Bestaande oproep",
"Export": "Wegschrijven",
"Export E2E room keys": "E2E-gesprekssleutels exporteren",
- "Failed to ban user": "Verbannen van gebruiker is mislukt",
+ "Failed to ban user": "Verbannen van persoon is mislukt",
"Failed to change power level": "Wijzigen van machtsniveau is mislukt",
"Failed to fetch avatar URL": "Ophalen van avatar-URL is mislukt",
"Failed to join room": "Toetreden tot gesprek is mislukt",
"Failed to leave room": "Verlaten van gesprek is mislukt",
"Failed to load timeline position": "Laden van tijdslijnpositie is mislukt",
- "Failed to mute user": "Dempen van gebruiker is mislukt",
+ "Failed to mute user": "Dempen van persoon is mislukt",
"Failed to reject invite": "Weigeren van uitnodiging is mislukt",
"Failed to reject invitation": "Weigeren van uitnodiging is mislukt",
"Failed to send email": "Versturen van e-mail is mislukt",
@@ -185,7 +185,7 @@
"Incoming call from %(name)s": "Inkomende oproep van %(name)s",
"Incoming video call from %(name)s": "Inkomende video-oproep van %(name)s",
"Incoming voice call from %(name)s": "Inkomende spraakoproep van %(name)s",
- "Incorrect username and/or password.": "Onjuiste gebruikersnaam en/of wachtwoord.",
+ "Incorrect username and/or password.": "Onjuiste inlognaam en/of wachtwoord.",
"Incorrect verification code": "Onjuiste verificatiecode",
"Invalid Email Address": "Ongeldig e-mailadres",
"Invalid file%(extra)s": "Ongeldig bestand %(extra)s",
@@ -230,7 +230,7 @@
"Room Colour": "Gesprekskleur",
"%(roomName)s does not exist.": "%(roomName)s bestaat niet.",
"%(roomName)s is not accessible at this time.": "%(roomName)s is op dit moment niet toegankelijk.",
- "Rooms": "Gesprekken",
+ "Rooms": "Kamers",
"Save": "Opslaan",
"Search failed": "Zoeken mislukt",
"Searches DuckDuckGo for results": "Zoekt op DuckDuckGo voor resultaten",
@@ -288,7 +288,7 @@
"Usage": "Gebruik",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (macht %(powerLevelNumber)s)",
"Username invalid: %(errMessage)s": "Ongeldige gebruikersnaam: %(errMessage)s",
- "Users": "Gebruikers",
+ "Users": "Personen",
"Verification Pending": "Verificatie in afwachting",
"Verified key": "Geverifieerde sleutel",
"Video call": "Video-oproep",
@@ -311,12 +311,12 @@
"You have enabled URL previews by default.": "U heeft URL-voorvertoningen standaard ingeschakeld.",
"You have no visible notifications": "U heeft geen zichtbare meldingen",
"You must register to use this functionality": "U dient u te registreren om deze functie te gebruiken",
- "You need to be able to invite users to do that.": "Dit vereist de bevoegdheid gebruikers uit te nodigen.",
+ "You need to be able to invite users to do that.": "Dit vereist de bevoegdheid om personen uit te nodigen.",
"You need to be logged in.": "Hiervoor dient u ingelogd te zijn.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Zo te zien is uw e-mailadres op deze homeserver niet aan een Matrix-ID gekoppeld.",
"You seem to be in a call, are you sure you want to quit?": "Het ziet er naar uit dat u in gesprek bent, weet u zeker dat u wilt afsluiten?",
"You seem to be uploading files, are you sure you want to quit?": "Het ziet er naar uit dat u bestanden aan het uploaden bent, weet u zeker dat u wilt afsluiten?",
- "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "U zult deze veranderingen niet terug kunnen draaien, daar u de gebruiker tot uw eigen niveau promoveert.",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "U zult deze veranderingen niet terug kunnen draaien, omdat u de persoon tot uw eigen machtsniveau promoveert.",
"This server does not support authentication with a phone number.": "Deze server biedt geen ondersteuning voor authenticatie met een telefoonnummer.",
"An error occurred: %(error_string)s": "Er is een fout opgetreden: %(error_string)s",
"There are no visible files in this room": "Er zijn geen zichtbare bestanden in dit gesprek",
@@ -338,7 +338,7 @@
"Confirm passphrase": "Wachtwoord bevestigen",
"Import room keys": "Gesprekssleutels inlezen",
"File to import": "In te lezen bestand",
- "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Hiermee kunt u de sleutels van uw ontvangen berichten in versleutelde gesprekken naar een lokaal bestand wegschrijven. Als u dat bestand dan in een andere Matrix-cliënt inleest kan die ook die berichten ontcijferen.",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Hiermee kunt u de sleutels van uw ontvangen berichten in versleutelde kamers naar een lokaal bestand wegschrijven. Als u dat bestand dan in een andere Matrix-cliënt inleest kan het ook die berichten ontcijferen.",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Het opgeslagen bestand geeft toegang tot het lezen en schrijven van uw versleutelde berichten - ga er dus zorgvuldig mee om! Bescherm uzelf door hieronder een wachtwoord in te voeren, dat dan gebruikt zal worden om het bestand te versleutelen. Het is dan alleen mogelijk de gegevens te lezen met hetzelfde wachtwoord.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Hiermee kunt u vanuit een andere Matrix-cliënt weggeschreven versleutelingssleutels inlezen, zodat u alle berichten die de andere cliënt kon ontcijferen ook hier kunt lezen.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Het weggeschreven bestand is beveiligd met een wachtwoord. Voer dat wachtwoord hier in om het bestand te ontsleutelen.",
@@ -386,7 +386,7 @@
"Do you want to set an email address?": "Wilt u een e-mailadres instellen?",
"This will allow you to reset your password and receive notifications.": "Zo kunt u een nieuw wachtwoord instellen en meldingen ontvangen.",
"Skip": "Overslaan",
- "Define the power level of a user": "Bepaal het machtsniveau van een gebruiker",
+ "Define the power level of a user": "Bepaal het machtsniveau van een persoon",
"Add a widget": "Widget toevoegen",
"Allow": "Toestaan",
"Cannot add any more widgets": "Er kunnen niet nog meer widgets toegevoegd worden",
@@ -403,8 +403,8 @@
"You do not have permission to do that in this room.": "U heeft geen rechten om dat in deze kamer te doen.",
"Example": "Voorbeeld",
"Create": "Aanmaken",
- "Featured Rooms:": "Prominente gesprekken:",
- "Featured Users:": "Prominente gebruikers:",
+ "Featured Rooms:": "Uitgelichte kamers:",
+ "Featured Users:": "Uitgelichte personen:",
"Automatically replace plain text Emoji": "Tekst automatisch vervangen door emoji",
"Failed to upload image": "Uploaden van afbeelding is mislukt",
"%(widgetName)s widget added by %(senderName)s": "%(widgetName)s-widget toegevoegd door %(senderName)s",
@@ -413,7 +413,7 @@
"Copied!": "Gekopieerd!",
"Failed to copy": "Kopiëren mislukt",
"Unpin Message": "Bericht losmaken",
- "Add rooms to this community": "Voeg gesprekken toe aan deze gemeenschap",
+ "Add rooms to this community": "Voeg kamers toe aan deze gemeenschap",
"Call Failed": "Oproep mislukt",
"Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Let op: elke persoon die u toevoegt aan een gemeenschap zal publiek zichtbaar zijn voor iedereen die de gemeenschaps-ID kent",
"Invite new community members": "Nodig nieuwe gemeenschapsleden uit",
@@ -425,14 +425,14 @@
"Show these rooms to non-members on the community page and room list?": "Deze kamers tonen aan niet-leden op de gemeenschapspagina en openbare kamerlijst?",
"Add rooms to the community": "Voeg kamers toe aan de gemeenschap",
"Add to community": "Toevoegen aan gemeenschap",
- "Failed to invite the following users to %(groupId)s:": "Uitnodigen van volgende gebruikers tot %(groupId)s is mislukt:",
- "Failed to invite users to community": "Uitnodigen van gebruikers tot de gemeenschap is mislukt",
- "Failed to invite users to %(groupId)s": "Uitnodigen van gebruikers tot %(groupId)s is mislukt",
+ "Failed to invite the following users to %(groupId)s:": "Uitnodigen van volgende personen tot %(groupId)s is mislukt:",
+ "Failed to invite users to community": "Uitnodigen van personen tot de gemeenschap is mislukt",
+ "Failed to invite users to %(groupId)s": "Uitnodigen van personen tot %(groupId)s is mislukt",
"Failed to add the following rooms to %(groupId)s:": "Toevoegen van de volgende kamers aan %(groupId)s is mislukt:",
"Restricted": "Beperkte toegang",
- "Ignored user": "Genegeerde gebruiker",
+ "Ignored user": "Genegeerde persoon",
"You are now ignoring %(userId)s": "U negeert nu %(userId)s",
- "Unignored user": "Niet-genegeerde gebruiker",
+ "Unignored user": "Niet-genegeerde persoon",
"You are no longer ignoring %(userId)s": "U negeert %(userId)s niet meer",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s heeft de vastgeprikte boodschappen voor de kamer gewijzigd.",
"Send": "Versturen",
@@ -444,12 +444,12 @@
"%(senderName)s sent an image": "%(senderName)s heeft een afbeelding gestuurd",
"%(senderName)s sent a video": "%(senderName)s heeft een video gestuurd",
"%(senderName)s uploaded a file": "%(senderName)s heeft een bestand geüpload",
- "Disinvite this user?": "Uitnodiging van deze gebruiker intrekken?",
- "Kick this user?": "Deze gebruiker uit het gesprek zetten?",
- "Unban this user?": "Deze gebruiker ontbannen?",
- "Ban this user?": "Deze gebruiker verbannen?",
+ "Disinvite this user?": "Uitnodiging van deze persoon intrekken?",
+ "Kick this user?": "Deze persoon verwijderen?",
+ "Unban this user?": "Deze persoon ontbannen?",
+ "Ban this user?": "Deze persoon verbannen?",
"Mirror local video feed": "Lokale videoaanvoer ook elders opslaan (spiegelen)",
- "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "Zelfdegradatie is onomkeerbaar. Als u de laatste bevoorrechte gebruiker in het gesprek bent zullen deze rechten voorgoed verloren gaan.",
+ "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "Zelfdegradatie is onomkeerbaar. Als u de laatste gemachtigde persoon in de kamer bent zullen deze rechten voorgoed verloren gaan.",
"Unignore": "Niet meer negeren",
"Ignore": "Negeren",
"Jump to read receipt": "Naar het laatst gelezen bericht gaan",
@@ -471,7 +471,7 @@
"Unknown for %(duration)s": "Onbekend voor %(duration)s",
"Unknown": "Onbekend",
"Replying": "Aan het beantwoorden",
- "No rooms to show": "Geen weer te geven gesprekken",
+ "No rooms to show": "Geen kamers om weer te geven",
"Unnamed room": "Naamloos gesprek",
"World readable": "Leesbaar voor iedereen",
"Guests can join": "Gasten kunnen toetreden",
@@ -491,10 +491,10 @@
"An email has been sent to %(emailAddress)s": "Er is een e-mail naar %(emailAddress)s verstuurd",
"A text message has been sent to %(msisdn)s": "Er is een sms naar %(msisdn)s verstuurd",
"Remove from community": "Verwijderen uit gemeenschap",
- "Disinvite this user from community?": "Uitnodiging voor deze gebruiker tot de gemeenschap intrekken?",
- "Remove this user from community?": "Deze gebruiker uit de gemeenschap verwijderen?",
+ "Disinvite this user from community?": "Uitnodiging voor deze persoon tot de gemeenschap intrekken?",
+ "Remove this user from community?": "Deze persoon uit de gemeenschap verwijderen?",
"Failed to withdraw invitation": "Intrekken van uitnodiging is mislukt",
- "Failed to remove user from community": "Verwijderen van gebruiker uit gemeenschap is mislukt",
+ "Failed to remove user from community": "Verwijderen van persoon uit gemeenschap is mislukt",
"Filter community members": "Gemeenschapsleden filteren",
"Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Weet u zeker dat u ‘%(roomName)s’ uit %(groupId)s wilt verwijderen?",
"Removing a room from the community will also remove it from the community page.": "Het gesprek uit de gemeenschap verwijderen zal dit ook van de gemeenschapspagina verwijderen.",
@@ -504,9 +504,9 @@
"Visibility in Room List": "Zichtbaarheid in gesprekslijst",
"Visible to everyone": "Zichtbaar voor iedereen",
"Only visible to community members": "Alleen zichtbaar voor gemeenschapsleden",
- "Filter community rooms": "Gemeenschapsgesprekken filteren",
+ "Filter community rooms": "Gemeenschapskamers filteren",
"Something went wrong when trying to get your communities.": "Er ging iets mis bij het ophalen van uw gemeenschappen.",
- "Display your community flair in rooms configured to show it.": "Toon uw gemeenschapsbadge in gesprekken die daarvoor ingesteld zijn.",
+ "Display your community flair in rooms configured to show it.": "Toon uw gemeenschapsbadge in kamers die daarvoor ingesteld zijn.",
"You're not currently a member of any communities.": "U bent momenteel geen lid van een gemeenschap.",
"Minimize apps": "Apps minimaliseren",
"Communities": "Gemeenschappen",
@@ -552,7 +552,7 @@
"was kicked %(count)s times|one": "is uit het gesprek gezet",
"%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s hebben hun naam %(count)s keer gewijzigd",
"%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s hebben hun naam gewijzigd",
- "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s is %(count)s maal van naam veranderd",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s is %(count)s keer van naam veranderd",
"%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s is van naam veranderd",
"%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s hebben hun afbeelding %(count)s keer gewijzigd",
"%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s hebben hun afbeelding gewijzigd",
@@ -577,19 +577,19 @@
"Community ID": "Gemeenschaps-ID",
"example": "voorbeeld",
"
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n": "
HTML voor uw gemeenschapspagina
\n
\n Gebruik de lange beschrijving om nieuwe leden in de gemeenschap te introduceren of om belangrijke koppelingen aan te bieden.\n
\n
\n U kunt zelfs ‘img’-tags gebruiken.\n
\n",
- "Add rooms to the community summary": "Voeg gesprekken aan het gemeenschapsoverzicht toe",
- "Which rooms would you like to add to this summary?": "Welke gesprekken zou u aan dit overzicht willen toevoegen?",
+ "Add rooms to the community summary": "Voeg kamers aan het gemeenschapsoverzicht toe",
+ "Which rooms would you like to add to this summary?": "Welke kamers zou u aan dit overzicht willen toevoegen?",
"Add to summary": "Toevoegen aan overzicht",
- "Failed to add the following rooms to the summary of %(groupId)s:": "Kon de volgende gesprekken niet aan het overzicht van %(groupId)s toevoegen:",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Kon de volgende kamers niet aan het overzicht van %(groupId)s toevoegen:",
"Add a Room": "Voeg een gesprek toe",
"Failed to remove the room from the summary of %(groupId)s": "Kon het gesprek niet uit het overzicht van %(groupId)s verwijderen",
"The room '%(roomName)s' could not be removed from the summary.": "Het gesprek ‘%(roomName)s’ kan niet uit het overzicht verwijderd worden.",
- "Add users to the community summary": "Voeg gebruikers aan het gemeenschapsoverzicht toe",
+ "Add users to the community summary": "Voeg personen aan het gemeenschapsoverzicht toe",
"Who would you like to add to this summary?": "Wie zou u aan het overzicht willen toevoegen?",
- "Failed to add the following users to the summary of %(groupId)s:": "Kon de volgende gebruikers niet aan het overzicht van %(groupId)s toevoegen:",
- "Add a User": "Voeg een gebruiker toe",
- "Failed to remove a user from the summary of %(groupId)s": "Verwijderen van gebruiker uit het overzicht van %(groupId)s is mislukt",
- "The user '%(displayName)s' could not be removed from the summary.": "De gebruiker ‘%(displayName)s’ kon niet uit het overzicht verwijderd worden.",
+ "Failed to add the following users to the summary of %(groupId)s:": "Kon de volgende personen niet aan het overzicht van %(groupId)s toevoegen:",
+ "Add a User": "Voeg een persoon toe",
+ "Failed to remove a user from the summary of %(groupId)s": "Verwijderen van persoon uit het overzicht van %(groupId)s is mislukt",
+ "The user '%(displayName)s' could not be removed from the summary.": "De persoon ‘%(displayName)s’ kon niet uit het overzicht verwijderd worden.",
"Failed to update community": "Bijwerken van gemeenschap is mislukt",
"Unable to accept invite": "Kan de uitnodiging niet aannemen",
"Unable to reject invite": "Kan de uitnodiging niet weigeren",
@@ -597,7 +597,7 @@
"Leave %(groupName)s?": "%(groupName)s verlaten?",
"Leave": "Verlaten",
"Community Settings": "Gemeenschapsinstellingen",
- "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Op de gemeenschapspagina worden deze gesprekken getoond aan gemeenschapsleden, die er dan aan kunnen deelnemen door erop te klikken.",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Op de gemeenschapspagina worden deze kamers getoond aan gemeenschapsleden, die er dan aan kunnen deelnemen door erop te klikken.",
"%(inviter)s has invited you to join this community": "%(inviter)s heeft u uitgenodigd in deze gemeenschap",
"You are an administrator of this community": "U bent een beheerder van deze gemeenschap",
"You are a member of this community": "U bent lid van deze gemeenschap",
@@ -611,7 +611,7 @@
"Your Communities": "Uw gemeenschappen",
"Error whilst fetching joined communities": "Er is een fout opgetreden bij het ophalen van de gemeenschappen waarvan u lid bent",
"Create a new community": "Maak een nieuwe gemeenschap aan",
- "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Maak een gemeenschap aan om gebruikers en gesprekken bijeen te brengen! Schep met een startpagina op maat uw eigen plaats in het Matrix-universum.",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Maak een gemeenschap aan om personen en kamers bijeen te brengen! Schep met een startpagina op maat uw eigen plaats in het Matrix-universum.",
"%(count)s of your messages have not been sent.|one": "Uw bericht is niet verstuurd.",
"%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Alles nu opnieuw versturen of annuleren. U kunt ook individuele berichten selecteren om opnieuw te versturen of te annuleren.",
"%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Bericht opnieuw versturen of bericht annuleren.",
@@ -622,8 +622,8 @@
"An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Er is een e-mail naar %(emailAddress)s verstuurd. Klik hieronder van zodra u de koppeling erin hebt gevolgd.",
"Please note you are logging into the %(hs)s server, not matrix.org.": "Let op dat u inlogt bij de %(hs)s-server, niet matrix.org.",
"This homeserver doesn't offer any login flows which are supported by this client.": "Deze homeserver heeft geen loginmethodes die door deze cliënt worden ondersteund.",
- "Ignores a user, hiding their messages from you": "Negeert een gebruiker, waardoor de berichten ervan onzichtbaar voor u worden",
- "Stops ignoring a user, showing their messages going forward": "Stopt het negeren van een gebruiker, hierdoor worden de berichten van de gebruiker weer zichtbaar",
+ "Ignores a user, hiding their messages from you": "Negeert een persoon, waardoor de berichten ervan onzichtbaar voor u worden",
+ "Stops ignoring a user, showing their messages going forward": "Stopt het negeren van een persoon, hierdoor worden de berichten van de persoon weer zichtbaar",
"Notify the whole room": "Laat dit aan het hele groepsgesprek weten",
"Room Notification": "Groepsgespreksmelding",
"The information being sent to us to help make %(brand)s better includes:": "De informatie die naar ons wordt verstuurd om %(brand)s te verbeteren bevat:",
@@ -653,12 +653,12 @@
"Code": "Code",
"Unable to join community": "Kan niet toetreden tot de gemeenschap",
"Unable to leave community": "Kan de gemeenschap niet verlaten",
- "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Veranderingen aan uw gemeenschapsnaam en -afbeelding zullen mogelijk niet gezien worden door anderen tot maximaal 30 minuten.",
+ "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Veranderingen aan uw gemeenschapsnaam en -afbeelding zullen mogelijk nog niet gezien worden door anderen voor 30 minuten.",
"Join this community": "Toetreden tot deze gemeenschap",
"Who can join this community?": "Wie kan er tot deze gemeenschap toetreden?",
"Everyone": "Iedereen",
"Leave this community": "Deze gemeenschap verlaten",
- "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Voor het oplossen van, via GitHub, gemelde bugs helpen foutenlogboeken ons enorm. Deze bevatten wel uw gebruiksgegevens, maar geen berichten. Het bevat onder meer uw gebruikersnaam, de ID’s of bijnamen van de gesprekken en groepen die u heeft bezocht en de namen van andere gebruikers.",
+ "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Voor het oplossen van, via GitHub, gemelde bugs helpen foutenlogboeken ons enorm. Deze bevatten wel uw accountgegevens, maar geen berichten. Het bevat onder meer uw inlognaam, de ID’s of bijnamen van de kamers en groepen die u heeft bezocht en de namen van andere personen.",
"Submit debug logs": "Foutenlogboek versturen",
"Opens the Developer Tools dialog": "Opent het dialoogvenster met ontwikkelaarsgereedschap",
"Fetching third party location failed": "Het ophalen van de locatie van de derde partij is mislukt",
@@ -686,7 +686,7 @@
"Resend": "Opnieuw versturen",
"Error saving email notification preferences": "Fout bij het opslaan van de meldingsvoorkeuren voor e-mail",
"Messages containing my display name": "Berichten die mijn weergavenaam bevatten",
- "Messages in one-to-one chats": "Berichten in één-op-één gesprekken",
+ "Messages in one-to-one chats": "Berichten in één-op-één chats",
"Unavailable": "Niet beschikbaar",
"View Decrypted Source": "Ontsleutelde bron bekijken",
"Failed to update keywords": "Updaten van trefwoorden is mislukt",
@@ -744,7 +744,7 @@
"Notify for all other messages/rooms": "Stuur een melding voor alle andere berichten/gesprekken",
"Unable to look up room ID from server": "Kon de gesprek-ID niet van de server ophalen",
"Couldn't find a matching Matrix room": "Kon geen bijbehorend Matrix-gesprek vinden",
- "All Rooms": "Alle gesprekken",
+ "All Rooms": "Alle kamers",
"You cannot delete this message. (%(code)s)": "U kunt dit bericht niet verwijderen. (%(code)s)",
"Thursday": "Donderdag",
"Forward Message": "Bericht doorsturen",
@@ -779,7 +779,7 @@
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Met uw huidige browser kan de toepassing er volledig onjuist uitzien. Tevens is het mogelijk dat niet alle functies naar behoren werken. U kunt doorgaan als u het toch wilt proberen, maar bij problemen bent u volledig op uzelf aangewezen!",
"Checking for an update...": "Bezig met controleren op updates…",
"Logs sent": "Logs verstuurd",
- "Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Foutenlogboeken bevatten gebruiksgegevens van de app inclusief uw gebruikersnaam, de ID’s of bijnamen van de gesprekken die u heeft bezocht, en de gebruikersnamen van andere gebruikers. Ze bevatten geen berichten.",
+ "Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Foutenlogboeken bevatten persoonsgegevens van de app inclusief uw inlognaam, de ID’s of bijnamen van de kamers die u heeft bezocht, en de inlognamen van andere personen. Ze bevatten geen berichten.",
"Failed to send logs: ": "Versturen van logs mislukt: ",
"Preparing to send logs": "Logs voorbereiden voor versturen",
"e.g. %(exampleValue)s": "bv. %(exampleValue)s",
@@ -790,12 +790,12 @@
"Always show encryption icons": "Versleutelingspictogrammen altijd tonen",
"Send analytics data": "Gebruiksgegevens delen",
"Enable widget screenshots on supported widgets": "Widget-schermafbeeldingen inschakelen op ondersteunde widgets",
- "Muted Users": "Gedempte gebruikers",
+ "Muted Users": "Gedempte personen",
"Popout widget": "Widget in nieuw venster openen",
"Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Kan de gebeurtenis waarop gereageerd was niet laden. Wellicht bestaat die niet, of u heeft geen toestemming die te bekijken.",
- "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Dit zal uw account voorgoed onbruikbaar maken. U zult niet meer kunnen inloggen, en niemand anders zal zich met dezelfde gebruikers-ID kunnen registreren. Hierdoor zal uw account alle gesprekken waaraan u deelneemt verlaten, en worden de accountgegevens verwijderd van de identiteitsserver. Deze stap is onomkeerbaar.",
+ "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Dit zal uw account voorgoed onbruikbaar maken. U zult niet meer kunnen inloggen, en niemand anders zal zich met dezelfde persoon-ID kunnen registreren. Hierdoor zal uw account alle kamers waar u aan deelneemt verlaten, en worden de accountgegevens verwijderd van de identiteitsserver. Deze stap is onomkeerbaar.",
"Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "Het sluiten van uw account maakt standaard niet dat wij de door u verstuurde berichten vergeten. Als u wilt dat wij uw berichten vergeten, vink dan het vakje hieronder aan.",
- "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "De zichtbaarheid van berichten in Matrix is zoals bij e-mails. Het vergeten van uw berichten betekent dat berichten die u heeft verstuurd niet meer gedeeld worden met nieuwe of ongeregistreerde gebruikers, maar geregistreerde gebruikers die al toegang hebben tot deze berichten zullen alsnog toegang hebben tot hun eigen kopie ervan.",
+ "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "De zichtbaarheid van berichten in Matrix is vergelijkbaar met e-mail. Het vergeten van uw berichten betekent dat berichten die u heeft verstuurd niet meer gedeeld worden met nieuwe of ongeregistreerde personen, maar geregistreerde personen die al toegang hebben tot deze berichten zullen alsnog toegang hebben tot hun eigen kopie ervan.",
"Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Vergeet bij het sluiten van mijn account alle door mij verstuurde berichten (Let op: hierdoor zullen personen een onvolledig beeld krijgen van gesprekken)",
"To continue, please enter your password:": "Voer uw wachtwoord in om verder te gaan:",
"Clear Storage and Sign Out": "Opslag wissen en uitloggen",
@@ -817,10 +817,10 @@
"This event could not be displayed": "Deze gebeurtenis kon niet weergegeven worden",
"Demote yourself?": "Uzelf degraderen?",
"Demote": "Degraderen",
- "Share Link to User": "Koppeling naar gebruiker delen",
+ "Share Link to User": "Koppeling naar persoon delen",
"Share room": "Gesprek delen",
"System Alerts": "Systeemmeldingen",
- "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "In versleutelde gesprekken zoals deze zijn URL-voorvertoningen standaard uitgeschakeld, om te voorkomen dat uw homeserver (waar de voorvertoningen worden gemaakt) informatie kan verzamelen over de koppelingen die u hier ziet.",
+ "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "In versleutelde kamers zoals deze zijn URL-voorvertoningen standaard uitgeschakeld, om te voorkomen dat uw homeserver (waar de voorvertoningen worden gemaakt) informatie kan verzamelen over de koppelingen die u hier ziet.",
"When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "Als iemand een URL in een bericht invoegt, kan er een URL-voorvertoning weergegeven worden met meer informatie over de koppeling, zoals de titel, omschrijving en een afbeelding van de website.",
"The email field must not be blank.": "Het e-mailveld mag niet leeg zijn.",
"The phone number field must not be blank.": "Het telefoonnummerveld mag niet leeg zijn.",
@@ -829,7 +829,7 @@
"An error ocurred whilst trying to remove the widget from the room": "Er trad een fout op bij de verwijderpoging van de widget uit dit gesprek",
"Share Room": "Gesprek delen",
"Link to most recent message": "Koppeling naar meest recente bericht",
- "Share User": "Gebruiker delen",
+ "Share User": "Persoon delen",
"Share Community": "Gemeenschap delen",
"Share Room Message": "Bericht uit gesprek delen",
"Link to selected message": "Koppeling naar geselecteerd bericht",
@@ -838,14 +838,14 @@
"You can't send any messages until you review and agree to our terms and conditions.": "U kunt geen berichten sturen totdat u onze algemene voorwaarden heeft gelezen en aanvaard.",
"No Audio Outputs detected": "Geen geluidsuitgangen gedetecteerd",
"Audio Output": "Geluidsuitgang",
- "Ignored users": "Genegeerde gebruikers",
+ "Ignored users": "Genegeerde personen",
"Bulk options": "Bulkopties",
- "This homeserver has hit its Monthly Active User limit.": "Deze homeserver heeft zijn limiet voor maandelijks actieve gebruikers bereikt.",
+ "This homeserver has hit its Monthly Active User limit.": "Deze homeserver heeft zijn limiet voor maandelijks actieve personen bereikt.",
"This homeserver has exceeded one of its resource limits.": "Deze homeserver heeft één van zijn systeembronlimieten overschreden.",
- "Whether or not you're logged in (we don't record your username)": "Of u al dan niet ingelogd bent (we slaan je gebruikersnaam niet op)",
+ "Whether or not you're logged in (we don't record your username)": "Of u al dan niet ingelogd bent (we slaan uw inlognaam niet op)",
"The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "Het bestand ‘%(fileName)s’ is groter dan de uploadlimiet van de homeserver",
"Unable to load! Check your network connectivity and try again.": "Laden mislukt! Controleer je netwerktoegang en probeer het nogmaals.",
- "Failed to invite users to the room:": "Kon de volgende gebruikers hier niet uitnodigen:",
+ "Failed to invite users to the room:": "Kon de volgende personen hier niet uitnodigen:",
"Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Plakt ¯\\_(ツ)_/¯ vóór een bericht zonder opmaak",
"Upgrades a room to a new version": "Upgrade deze kamer naar een nieuwere versie",
"Changes your display nickname in the current room only": "Stelt uw weergavenaam alleen in de huidige kamer in",
@@ -872,10 +872,10 @@
"Unable to connect to Homeserver. Retrying...": "Kon geen verbinding met de homeserver maken. Nieuwe poging…",
"Unrecognised address": "Adres niet herkend",
"You do not have permission to invite people to this room.": "U bent niet bevoegd anderen tot dit gesprek uit te nodigen.",
- "User %(userId)s is already in the room": "De gebruiker %(userId)s is al aanwezig",
- "User %(user_id)s does not exist": "Er bestaat geen gebruiker %(user_id)s",
- "User %(user_id)s may or may not exist": "Er bestaat mogelijk geen gebruiker %(user_id)s",
- "The user must be unbanned before they can be invited.": "De gebruiker kan niet uitgenodigd worden voordat diens ban teniet is gedaan.",
+ "User %(userId)s is already in the room": "De persoon %(userId)s is al aanwezig",
+ "User %(user_id)s does not exist": "Er bestaat geen persoon %(user_id)s",
+ "User %(user_id)s may or may not exist": "Er bestaat mogelijk geen persoon %(user_id)s",
+ "The user must be unbanned before they can be invited.": "De persoon kan niet uitgenodigd worden totdat zijn ban is verwijderd.",
"Unknown server error": "Onbekende serverfout",
"Use a few words, avoid common phrases": "Gebruik enkele woorden - maar geen bekende uitdrukkingen",
"No need for symbols, digits, or uppercase letters": "Hoofdletters, cijfers of speciale tekens hoeven niet, mogen wel",
@@ -907,34 +907,34 @@
"There was an error joining the room": "Er is een fout opgetreden bij het betreden van het gesprek",
"Sorry, your homeserver is too old to participate in this room.": "Helaas - uw homeserver is te oud voor dit gesprek.",
"Please contact your homeserver administrator.": "Gelieve contact op te nemen met de beheerder van uw homeserver.",
- "Custom user status messages": "Aangepaste gebruikersstatusberichten",
- "Group & filter rooms by custom tags (refresh to apply changes)": "Gesprekken groeperen en filteren volgens eigen labels (herlaad om de verandering te zien)",
+ "Custom user status messages": "Aangepaste statusberichten",
+ "Group & filter rooms by custom tags (refresh to apply changes)": "Kamers groeperen en filteren volgens eigen labels (herlaad om de verandering te zien)",
"Render simple counters in room header": "Eenvoudige tellers bovenaan het gesprek tonen",
"Enable Emoji suggestions while typing": "Emoticons voorstellen tijdens het typen",
"Show a placeholder for removed messages": "Verwijderde berichten vulling tonen",
"Show join/leave messages (invites/kicks/bans unaffected)": "Berichten over toe- en uittredingen tonen (dit heeft geen effect op uitnodigingen, berispingen of verbanningen)",
"Show avatar changes": "Veranderingen van afbeelding tonen",
"Show display name changes": "Veranderingen van weergavenamen tonen",
- "Show read receipts sent by other users": "Door andere gebruikers verstuurde leesbevestigingen tonen",
+ "Show read receipts sent by other users": "Door andere personen verstuurde leesbevestigingen tonen",
"Show a reminder to enable Secure Message Recovery in encrypted rooms": "Herinnering tonen om veilig berichtherstel in te schakelen in versleutelde gesprekken",
"Show avatars in user and room mentions": "Vermelde personen- of kamerafbeelding tonen",
- "Enable big emoji in chat": "Grote emoji in gesprekken inschakelen",
+ "Enable big emoji in chat": "Grote emoji in kamers inschakelen",
"Send typing notifications": "Typmeldingen versturen",
"Enable Community Filter Panel": "Gemeenschapsfilterpaneel inschakelen",
"Allow Peer-to-Peer for 1:1 calls": "Peer-to-peer voor één-op-één oproepen toestaan",
"Prompt before sending invites to potentially invalid matrix IDs": "Uitnodigingen naar mogelijk ongeldige Matrix-ID’s bevestigen",
"Show developer tools": "Ontwikkelgereedschap tonen",
- "Messages containing my username": "Berichten die mijn gebruikersnaam bevatten",
+ "Messages containing my username": "Berichten die mijn inlognaam bevatten",
"Messages containing @room": "Berichten die ‘@room’ bevatten",
- "Encrypted messages in one-to-one chats": "Versleutelde berichten in één-op-één gesprekken",
+ "Encrypted messages in one-to-one chats": "Versleutelde berichten in één-op-één chats",
"Encrypted messages in group chats": "Versleutelde berichten in groepsgesprekken",
"The other party cancelled the verification.": "De tegenpartij heeft de verificatie geannuleerd.",
"Verified!": "Geverifieerd!",
- "You've successfully verified this user.": "U heeft deze gebruiker geverifieerd.",
- "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "Beveiligde berichten met deze gebruiker zijn eind-tot-eind-versleuteld en kunnen niet door derden worden gelezen.",
+ "You've successfully verified this user.": "U heeft deze persoon geverifieerd.",
+ "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "Beveiligde berichten met deze persoon zijn eind-tot-eind-versleuteld en kunnen niet door derden worden gelezen.",
"Got It": "Ik snap het",
- "Verify this user by confirming the following emoji appear on their screen.": "Verifieer deze gebruiker door te bevestigen dat hun scherm de volgende emoji toont.",
- "Verify this user by confirming the following number appears on their screen.": "Verifieer deze gebruiker door te bevestigen dat hun scherm het volgende getal toont.",
+ "Verify this user by confirming the following emoji appear on their screen.": "Verifieer deze persoon door te bevestigen dat hun scherm de volgende emoji toont.",
+ "Verify this user by confirming the following number appears on their screen.": "Verifieer deze persoon door te bevestigen dat hun scherm het volgende getal toont.",
"Unable to find a supported verification method.": "Kan geen ondersteunde verificatiemethode vinden.",
"Dog": "Hond",
"Cat": "Kat",
@@ -1066,17 +1066,17 @@
"Modify widgets": "Widgets aanpassen",
"Default role": "Standaardrol",
"Send messages": "Berichten versturen",
- "Invite users": "Gebruikers uitnodigen",
+ "Invite users": "Personen uitnodigen",
"Change settings": "Instellingen wijzigen",
- "Kick users": "Gebruikers uit het gesprek verwijderen",
- "Ban users": "Gebruikers verbannen",
+ "Kick users": "Personen verwijderen",
+ "Ban users": "Personen verbannen",
"Remove messages": "Berichten verwijderen",
"Notify everyone": "Iedereen melden",
"Send %(eventType)s events": "%(eventType)s-gebeurtenissen versturen",
"Roles & Permissions": "Rollen & rechten",
"Select the roles required to change various parts of the room": "Selecteer de vereiste rollen om verschillende delen van het gesprek te wijzigen",
"Enable encryption?": "Versleuteling inschakelen?",
- "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Gespreksversleuteling is onomkeerbaar. Berichten in versleutelde gesprekken zijn niet leesbaar voor de server; enkel voor de gespreksdeelnemers. Veel robots en overbruggingen werken niet correct in versleutelde gesprekken. Lees meer over versleuteling.",
+ "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "Kamerversleuteling is onomkeerbaar. Berichten in versleutelde kamers zijn niet leesbaar voor de server; enkel voor de deelnemers. Veel robots en bruggen werken niet correct in versleutelde kamers. Lees meer over versleuteling.",
"Changes to who can read history will only apply to future messages in this room. The visibility of existing history will be unchanged.": "Wijzigingen aan wie de geschiedenis kan lezen gelden enkel voor toekomstige berichten in dit gesprek. De zichtbaarheid van de bestaande geschiedenis blijft ongewijzigd.",
"Encryption": "Versleuteling",
"Once enabled, encryption cannot be disabled.": "Eenmaal ingeschakeld kan versleuteling niet meer worden uitgeschakeld.",
@@ -1104,7 +1104,7 @@
"Join": "Deelnemen",
"Power level": "Machtsniveau",
"That doesn't look like a valid email address": "Dit is geen geldig e-mailadres",
- "The following users may not exist": "Volgende gebruikers bestaan mogelijk niet",
+ "The following users may not exist": "Volgende personen bestaan mogelijk niet",
"Unable to find profiles for the Matrix IDs listed below - would you like to invite them anyway?": "Kan geen profielen voor de Matrix-ID’s hieronder vinden - wilt u ze toch uitnodigen?",
"Invite anyway and never warn me again": "Alsnog uitnodigen en mij nooit meer waarschuwen",
"Invite anyway": "Alsnog uitnodigen",
@@ -1113,14 +1113,14 @@
"To avoid losing your chat history, you must export your room keys before logging out. You will need to go back to the newer version of %(brand)s to do this": "Om uw gespreksgeschiedenis niet te verliezen vóór het uitloggen dient u uw veiligheidssleutel te exporteren. Dat moet vanuit de nieuwere versie van %(brand)s",
"Incompatible Database": "Incompatibele database",
"Continue With Encryption Disabled": "Verdergaan met versleuteling uitgeschakeld",
- "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Verifieer deze gebruiker om hem/haar als vertrouwd te markeren. Gebruikers vertrouwen geeft u extra gemoedsrust bij het gebruik van eind-tot-eind-versleutelde berichten.",
+ "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Verifieer deze persoon om als vertrouwd te markeren. Personen vertrouwen geeft u extra zekerheid bij het gebruik van eind-tot-eind-versleutelde berichten.",
"Waiting for partner to confirm...": "Wachten op bevestiging van partner…",
"Incoming Verification Request": "Inkomend verificatieverzoek",
"You've previously used %(brand)s on %(host)s with lazy loading of members enabled. In this version lazy loading is disabled. As the local cache is not compatible between these two settings, %(brand)s needs to resync your account.": "U heeft voorheen %(brand)s op %(host)s gebruikt met lui laden van leden ingeschakeld. In deze versie is lui laden uitgeschakeld. De lokale cache is niet compatibel tussen deze twee instellingen, zodat %(brand)s uw account moet hersynchroniseren.",
"If the other version of %(brand)s is still open in another tab, please close it as using %(brand)s on the same host with both lazy loading enabled and disabled simultaneously will cause issues.": "Indien de andere versie van %(brand)s nog open staat in een ander tabblad kunt u dat beter sluiten, want het geeft problemen als %(brand)s op dezelfde host gelijktijdig met lui laden ingeschakeld en uitgeschakeld draait.",
"Incompatible local cache": "Incompatibele lokale cache",
"Clear cache and resync": "Cache wissen en hersynchroniseren",
- "%(brand)s now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "%(brand)s verbruikt nu 3-5x minder geheugen, door informatie over andere gebruikers enkel te laden wanneer nodig. Even geduld, we hersynchroniseren met de server!",
+ "%(brand)s now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "%(brand)s verbruikt nu 3-5x minder geheugen, door informatie over andere personen enkel te laden wanneer nodig. Even geduld, we synchroniseren met de server!",
"Updating %(brand)s": "%(brand)s wordt bijgewerkt",
"I don't want my encrypted messages": "Ik wil mijn versleutelde berichten niet",
"Manually export keys": "Sleutels handmatig wegschrijven",
@@ -1131,13 +1131,13 @@
"Report bugs & give feedback": "Fouten melden & feedback geven",
"Go back": "Terug",
"Room Settings - %(roomName)s": "Gespreksinstellingen - %(roomName)s",
- "Failed to upgrade room": "Gesprek upgraden mislukt",
- "The room upgrade could not be completed": "Het upgraden van het gesprek kon niet voltooid worden",
- "Upgrade this room to version %(version)s": "Upgrade dit gesprek tot versie %(version)s",
+ "Failed to upgrade room": "Kamerupgrade mislukt",
+ "The room upgrade could not be completed": "Het upgraden van de kamer kon niet worden voltooid",
+ "Upgrade this room to version %(version)s": "Upgrade de kamer naar versie %(version)s",
"Upgrade Room Version": "Gespreksversie upgraden",
"Create a new room with the same name, description and avatar": "Een nieuw kamer aanmaken met dezelfde naam, beschrijving en afbeelding",
"Update any local room aliases to point to the new room": "Alle lokale gespreksbijnamen naar het nieuwe gesprek laten verwijzen",
- "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Mensen verhinderen aan de oude versie van het gesprek bij te dragen en daar een bericht te plaatsen dat de gebruikers verwijst naar het nieuwe gesprek",
+ "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Personen verhinderen om aan de oude versie van de kamer bij te dragen en plaats een bericht te dat de personen verwijst naar de nieuwe kamer",
"Put a link back to the old room at the start of the new room so people can see old messages": "Bovenaan het nieuwe gesprek naar het oude verwijzen, om oude berichten te lezen",
"A username can only contain lower case letters, numbers and '=_-./'": "Een gebruikersnaam mag enkel kleine letters, cijfers en ‘=_-./’ bevatten",
"Checking...": "Bezig met controleren…",
@@ -1165,7 +1165,7 @@
"Enter the location of your Modular homeserver. It may use your own domain name or be a subdomain of modular.im.": "Voer de locatie van uw Modular-thuisserver in. Deze kan uw eigen domeinnaam gebruiken, of een subdomein van modular.im zijn.",
"Server Name": "Servernaam",
"The username field must not be blank.": "Het gebruikersnaamveld mag niet leeg zijn.",
- "Username": "Gebruikersnaam",
+ "Username": "Inlognaam",
"Not sure of your password? Set a new one": "Onzeker over uw wachtwoord? Stel een nieuw in",
"Sign in to your Matrix account on %(serverName)s": "Aanmelden met uw Matrix-account op %(serverName)s",
"Change": "Wijzigen",
@@ -1187,10 +1187,10 @@
"You are an administrator of this community. You will not be able to rejoin without an invite from another administrator.": "U bent een beheerder van deze gemeenschap. U zult niet opnieuw kunnen toetreden zonder een uitnodiging van een andere beheerder.",
"Want more than a community? Get your own server": "Wilt u meer dan een gemeenschap? Verkrijg uw eigen server",
"This homeserver does not support communities": "Deze homeserver biedt geen ondersteuning voor gemeenschappen",
- "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Uw bericht is niet verstuurd omdat deze homeserver zijn limiet voor maandelijks actieve gebruikers heeft bereikt. Neem contact op met uw dienstbeheerder om de dienst te blijven gebruiken.",
+ "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Uw bericht is niet verstuurd omdat deze homeserver zijn limiet voor maandelijks actieve personen heeft bereikt. Neem contact op met uw beheerder om de dienst te blijven gebruiken.",
"Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Uw bericht is niet verstuurd omdat deze homeserver een systeembronlimiet heeft overschreden. Neem contact op met uw dienstbeheerder om de dienst te blijven gebruiken.",
"Guest": "Gast",
- "Could not load user profile": "Kon gebruikersprofiel niet laden",
+ "Could not load user profile": "Kon persoonsprofiel niet laden",
"Your Matrix account on %(serverName)s": "Uw Matrix-account op %(serverName)s",
"A verification email will be sent to your inbox to confirm setting your new password.": "Er is een verificatie-e-mail naar u gestuurd om het instellen van uw nieuwe wachtwoord te bevestigen.",
"Sign in instead": "In plaats daarvan inloggen",
@@ -1233,7 +1233,7 @@
"Set up Secure Messages": "Beveiligde berichten instellen",
"Recovery Method Removed": "Herstelmethode verwijderd",
"If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Als u de herstelmethode niet heeft verwijderd, is het mogelijk dat er een aanvaller toegang tot uw account probeert te verkrijgen. Wijzig onmiddellijk uw wachtwoord en stel bij instellingen een nieuwe herstelmethode in.",
- "Warning: Upgrading a room will not automatically migrate room members to the new version of the room. We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.": "Let op: gesprekken bijwerken voegt gespreksleden niet automatisch toe aan de nieuwe versie van het gesprek. Er komt in het oude gesprek een koppeling naar het nieuwe, waarop gespreksleden moeten klikken om aan het nieuwe gesprek deel te nemen.",
+ "Warning: Upgrading a room will not automatically migrate room members to the new version of the room. We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.": "Let op: kamers bijwerken voegt leden niet automatisch toe aan de nieuwe versie van de kamer. Er komt in de oude kamer een koppeling naar de nieuwe, waarop leden moeten klikken om aan de nieuwe kamer deel te nemen.",
"Adds a custom widget by URL to the room": "Voegt met een URL een aangepaste widget toe aan de kamer",
"Please supply a https:// or http:// widget URL": "Voer een https://- of http://-widget-URL in",
"You cannot modify widgets in this room.": "U kunt de widgets in deze kamer niet aanpassen.",
@@ -1251,7 +1251,7 @@
"Remember my selection for this widget": "Onthoud mijn keuze voor deze widget",
"Deny": "Weigeren",
"%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s kon de protocollijst niet ophalen van de homeserver. Mogelijk is de homeserver te oud om derde-partij-netwerken te ondersteunen.",
- "%(brand)s failed to get the public room list.": "%(brand)s kon de lijst met openbare gesprekken niet verkrijgen.",
+ "%(brand)s failed to get the public room list.": "%(brand)s kon de lijst met publieke kamers niet verkrijgen.",
"The homeserver may be unavailable or overloaded.": "De homeserver is mogelijk onbereikbaar of overbelast.",
"You have %(count)s unread notifications in a prior version of this room.|other": "U heeft %(count)s ongelezen meldingen in een vorige versie van dit gesprek.",
"You have %(count)s unread notifications in a prior version of this room.|one": "U heeft %(count)s ongelezen meldingen in een vorige versie van dit gesprek.",
@@ -1263,7 +1263,7 @@
"Rotate clockwise": "Met de klok mee draaien",
"GitHub issue": "GitHub-melding",
"Notes": "Opmerkingen",
- "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Gelieve alle verdere informatie die zou kunnen helpen het probleem te analyseren (wat u aan het doen was, relevante gespreks-ID’s, gebruikers-ID’s, enz.) bij te voegen.",
+ "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Alle verdere informatie die zou kunnen helpen het probleem te analyseren graag toevoegen (wat u aan het doen was, relevante kamer-ID’s, persoon-ID’s, etc.).",
"Sign out and remove encryption keys?": "Uitloggen en versleutelingssleutels verwijderen?",
"To help us prevent this in future, please send us logs.": "Stuur ons uw logs om dit in de toekomst te helpen voorkomen.",
"Missing session data": "Sessiegegevens ontbreken",
@@ -1282,14 +1282,14 @@
"The server does not support the room version specified.": "De server ondersteunt deze versie van kamers niet.",
"Name or Matrix ID": "Naam of Matrix-ID",
"Changes your avatar in this current room only": "Verandert uw afbeelding alleen in de huidige kamer",
- "Unbans user with given ID": "Ontbant de gebruiker met de gegeven ID",
+ "Unbans user with given ID": "Ontbant de persoon met de gegeven ID",
"Sends the given message coloured as a rainbow": "Verstuurt het gegeven bericht in regenboogkleuren",
"Sends the given emote coloured as a rainbow": "Verstuurt de gegeven emoticon in regenboogkleuren",
"No homeserver URL provided": "Geen homeserver-URL opgegeven",
"Unexpected error resolving homeserver configuration": "Onverwachte fout bij het controleren van de homeserverconfiguratie",
- "The user's homeserver does not support the version of the room.": "De homeserver van de gebruiker biedt geen ondersteuning voor de gespreksversie.",
+ "The user's homeserver does not support the version of the room.": "De homeserver van de persoon biedt geen ondersteuning voor deze kamerversie.",
"Show hidden events in timeline": "Verborgen gebeurtenissen op de tijdslijn weergeven",
- "When rooms are upgraded": "Wanneer gesprekken geüpgraded worden",
+ "When rooms are upgraded": "Wanneer kamers geüpgraded worden",
"this room": "dit gesprek",
"View older messages in %(roomName)s.": "Bekijk oudere berichten in %(roomName)s.",
"Joining room …": "Deelnemen aan gesprek…",
@@ -1332,10 +1332,10 @@
"Password is allowed, but unsafe": "Wachtwoord is toegestaan, maar onveilig",
"Nice, strong password!": "Dit is een sterk wachtwoord!",
"Passwords don't match": "Wachtwoorden komen niet overeen",
- "Other users can invite you to rooms using your contact details": "Andere gebruikers kunnen u in gesprekken uitnodigen op basis van uw contactgegevens",
+ "Other users can invite you to rooms using your contact details": "Andere personen kunnen u in kamers uitnodigen op basis van uw contactgegevens",
"Enter phone number (required on this homeserver)": "Voer telefoonnummer in (vereist op deze homeserver)",
"Doesn't look like a valid phone number": "Dit lijkt geen geldig telefoonnummer",
- "Enter username": "Voer gebruikersnaam in",
+ "Enter username": "Voer inlognaam in",
"Some characters not allowed": "Sommige tekens zijn niet toegestaan",
"Create your Matrix account on ": "Maak uw Matrix-account op aan",
"Add room": "Gesprek toevoegen",
@@ -1472,7 +1472,7 @@
"Error changing power level requirement": "Fout bij wijzigen van machtsniveauvereiste",
"An error occurred changing the room's power level requirements. Ensure you have sufficient permissions and try again.": "Er is een fout opgetreden bij het wijzigen van de machtsniveauvereisten van het gesprek. Zorg ervoor dat u over voldoende machtigingen beschikt en probeer het opnieuw.",
"Error changing power level": "Fout bij wijzigen van machtsniveau",
- "An error occurred changing the user's power level. Ensure you have sufficient permissions and try again.": "Er is een fout opgetreden bij het wijzigen van het machtsniveau van de gebruiker. Zorg ervoor dat u over voldoende machtigingen beschikt en probeer het opnieuw.",
+ "An error occurred changing the user's power level. Ensure you have sufficient permissions and try again.": "Er is een fout opgetreden bij het wijzigen van het machtsniveau van de persoon. Zorg ervoor dat u over voldoende machtigingen beschikt en probeer het opnieuw.",
"Verify the link in your inbox": "Verifieer de koppeling in uw postvak",
"Complete": "Voltooien",
"No recent messages by %(user)s found": "Geen recente berichten door %(user)s gevonden",
@@ -1481,9 +1481,9 @@
"You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|other": "U staat op het punt %(count)s berichten van %(user)s te verwijderen. Dit kan niet teruggedraaid worden. Wilt u doorgaan?",
"For a large amount of messages, this might take some time. Please don't refresh your client in the meantime.": "Bij een groot aantal berichten kan dit even duren. Herlaad uw cliënt niet gedurende deze tijd.",
"Remove %(count)s messages|other": "%(count)s berichten verwijderen",
- "Deactivate user?": "Gebruiker deactiveren?",
- "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Deze gebruiker deactiveren zal deze gebruiker uitloggen en verhinderen dat de gebruiker weer inlogt. Bovendien zal de gebruiker alle gesprekken waaraan de gebruiker deelneemt verlaten. Deze actie is niet terug te draaien. Weet u zeker dat u deze gebruiker wilt deactiveren?",
- "Deactivate user": "Gebruiker deactiveren",
+ "Deactivate user?": "Persoon deactiveren?",
+ "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Deze persoon deactiveren zal deze persoon uitloggen en verhinderen dat de persoon weer inlogt. Bovendien zal de persoon alle kamers waaraan de persoon deelneemt verlaten. Deze actie is niet terug te draaien. Weet u zeker dat u deze persoon wilt deactiveren?",
+ "Deactivate user": "Persoon deactiveren",
"Remove recent messages": "Recente berichten verwijderen",
"Bold": "Vet",
"Italics": "Cursief",
@@ -1541,8 +1541,8 @@
"Community Autocomplete": "Gemeenschappen autoaanvullen",
"Emoji Autocomplete": "Emoji autoaanvullen",
"Notification Autocomplete": "Meldingen autoaanvullen",
- "Room Autocomplete": "Gesprekken autoaanvullen",
- "User Autocomplete": "Gebruikers autoaanvullen",
+ "Room Autocomplete": "Kamers autoaanvullen",
+ "User Autocomplete": "Personen autoaanvullen",
"Add Email Address": "E-mailadres toevoegen",
"Add Phone Number": "Telefoonnummer toevoegen",
"Your email address hasn't been verified yet": "Uw e-mailadres is nog niet geverifieerd",
@@ -1559,8 +1559,8 @@
"Custom (%(level)s)": "Aangepast (%(level)s)",
"Error upgrading room": "Upgraden van gesprek mislukt",
"Double check that your server supports the room version chosen and try again.": "Ga nogmaals na dat de server de gekozen gespreksversie ondersteunt, en probeer het dan opnieuw.",
- "Verifies a user, session, and pubkey tuple": "Verifieert een combinatie van gebruiker+sessie+publieke sleutel",
- "Unknown (user, session) pair:": "Onbekende combinatie gebruiker+sessie:",
+ "Verifies a user, session, and pubkey tuple": "Verifieert de combinatie van persoon, sessie en publieke sleutel",
+ "Unknown (user, session) pair:": "Onbekende combinatie persoon en sessie:",
"Session already verified!": "Sessie al geverifieerd!",
"WARNING: Session already verified, but keys do NOT MATCH!": "PAS OP: de sessie is al geverifieerd, maar de sleutels komen NIET OVEREEN!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "PAS OP: sleutelverificatie MISLUKT! De combinatie %(userId)s + sessie %(deviceId)s is ondertekend met ‘%(fprint)s’ - maar de opgegeven sleutel is ‘%(fingerprint)s’. Wellicht worden uw berichten onderschept!",
@@ -1569,20 +1569,20 @@
"%(senderName)s placed a voice call. (not supported by this browser)": "%(senderName)s poogt u te bellen, maar uw browser ondersteunt dat niet",
"%(senderName)s placed a video call.": "%(senderName)s doet een video-oproep.",
"%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s doet een video-oproep, maar uw browser ondersteunt dat niet",
- "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s heeft de banregel voor gebruikers die met %(glob)s stroken verwijderd",
+ "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s heeft de banregel voor personen die met %(glob)s stroken verwijderd",
"%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s heeft de banregel voor kamers met %(glob)s verwijderd",
"%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s heeft de banregel voor servers die met %(glob)s stroken verwijderd",
"%(senderName)s removed a ban rule matching %(glob)s": "%(senderName)s heeft een banregel die met %(glob)s strookt verwijderd",
"%(senderName)s updated an invalid ban rule": "%(senderName)s heeft een ongeldige banregel bijgewerkt",
- "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s heeft de regel bijgewerkt die gebruikers die met %(glob)s sporen verbant vanwege %(reason)s",
+ "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s heeft de regel bijgewerkt die personen die met %(glob)s sporen verbant vanwege %(reason)s",
"%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s heeft de regel bijgewerkt die kamers met %(glob)s verbant vanwege %(reason)s",
"%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s heeft de regel bijgewerkt die servers die met %(glob)s sporen verbant vanwege %(reason)s",
"%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s heeft een banregel vanwege %(reason)s die met %(glob)s spoort bijgewerkt",
- "%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s heeft geregeld dat gebruikers die met %(glob)s sporen verbannen worden vanwege %(reason)s",
+ "%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s heeft geregeld dat personen die met %(glob)s sporen verbannen worden vanwege %(reason)s",
"%(senderName)s created a rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s heeft geregeld dat kamers met %(glob)s verbannen worden vanwege %(reason)s",
"%(senderName)s created a rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s heeft geregeld dat servers die met %(glob)s sporen verbannen worden vanwege %(reason)s",
"%(senderName)s created a ban rule matching %(glob)s for %(reason)s": "%(senderName)s heeft geregeld dat alles wat met %(glob)s spoort verbannen wordt vanwege %(reason)s",
- "%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s heeft het patroon van een banregel voor gebruikers wegens %(reason)s aangepast van %(oldGlob)s tot %(newGlob)s",
+ "%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s heeft het patroon van een banregel voor personen wegens %(reason)s aangepast van %(oldGlob)s tot %(newGlob)s",
"%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s heeft het patroon van een banregel voor kamers wegens %(reason)s aangepast van %(oldGlob)s tot %(newGlob)s",
"%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s heeft het patroon van een banregel voor servers wegens %(reason)s aangepast van %(oldGlob)s tot %(newGlob)s",
"%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s heeft het patroon van een banregel wegens %(reason)s aangepast van %(oldGlob)s tot %(newGlob)s",
@@ -1607,10 +1607,10 @@
"Match system theme": "Aanpassen aan systeemthema",
"Never send encrypted messages to unverified sessions from this session": "Vanaf deze sessie nooit versleutelde berichten naar ongeverifieerde sessies versturen",
"Never send encrypted messages to unverified sessions in this room from this session": "Vanaf deze sessie nooit versleutelde berichten naar ongeverifieerde sessies in dit gesprek versturen",
- "Enable message search in encrypted rooms": "Zoeken in versleutelde gesprekken inschakelen",
+ "Enable message search in encrypted rooms": "Zoeken in versleutelde kamers inschakelen",
"How fast should messages be downloaded.": "Ophaalfrequentie van berichten.",
"My Ban List": "Mijn banlijst",
- "This is your list of users/servers you have blocked - don't leave the room!": "Dit is de lijst van door u geblokkeerde servers/gebruikers. Verlaat dit gesprek niet!",
+ "This is your list of users/servers you have blocked - don't leave the room!": "Dit is de lijst van door u geblokkeerde servers/personen. Verlaat deze kamer niet!",
"Waiting for %(displayName)s to verify…": "Wachten tot %(displayName)s geverifieerd heeft…",
"They match": "Ze komen overeen",
"They don't match": "Ze komen niet overeen",
@@ -1638,7 +1638,7 @@
"Delete %(count)s sessions|one": "%(count)s sessie verwijderen",
"Whether you're using %(brand)s on a device where touch is the primary input mechanism": "Of u %(brand)s op een apparaat gebruikt waarop een aanraakscherm de voornaamste invoermethode is",
"Whether you're using %(brand)s as an installed Progressive Web App": "Of u %(brand)s gebruikt als een geïnstalleerde Progressieve Web-App",
- "Your user agent": "Jouw gebruikersagent",
+ "Your user agent": "Uw persoonsagent",
"If you cancel now, you won't complete verifying the other user.": "Als u nu annuleert zult u de andere gebruiker niet verifiëren.",
"If you cancel now, you won't complete verifying your other session.": "Als u nu annuleert zult u uw andere sessie niet verifiëren.",
"Cancel entering passphrase?": "Wachtwoord annuleren?",
@@ -1658,10 +1658,10 @@
"not stored": "niet opgeslagen",
"Your password was successfully changed. You will not receive push notifications on other sessions until you log back in to them": "Uw wachtwoord is gewijzigd. U zult geen pushmeldingen op uw andere sessies meer ontvangen, totdat u zichzelf daar opnieuw inlogt",
"Ignored/Blocked": "Genegeerd/geblokkeerd",
- "Error adding ignored user/server": "Fout bij het toevoegen van een genegeerde gebruiker/server",
+ "Error adding ignored user/server": "Fout bij het toevoegen van een genegeerde persoon/server",
"Something went wrong. Please try again or view your console for hints.": "Er is iets fout gegaan. Probeer het opnieuw of bekijk de console om voor meer informatie.",
"Error subscribing to list": "Fout bij het abonneren op de lijst",
- "Error removing ignored user/server": "Fout bij het verwijderen van genegeerde gebruiker/server",
+ "Error removing ignored user/server": "Fout bij het verwijderen van genegeerde persoon/server",
"Error unsubscribing from list": "Fout bij het opzeggen van een abonnement op de lijst",
"Please try again or view your console for hints.": "Probeer het opnieuw of bekijk de console voor meer informatie.",
"None": "Geen",
@@ -1671,15 +1671,15 @@
"Unsubscribe": "Abonnement opzeggen",
"View rules": "Bekijk regels",
"You are currently subscribed to:": "U heeft een abonnement op:",
- "⚠ These settings are meant for advanced users.": "⚠ Deze instellingen zijn bedoeld voor gevorderde gebruikers.",
- "Ignoring people is done through ban lists which contain rules for who to ban. Subscribing to a ban list means the users/servers blocked by that list will be hidden from you.": "Het negeren van gebruikers gaat via banlijsten. Deze bevatten regels over wie verbannen moet worden. Het abonneren op een banlijst betekent dat u de gebruikers/servers die op de lijst staan niet meer zult zien.",
+ "⚠ These settings are meant for advanced users.": "⚠ Deze instellingen zijn bedoeld voor gevorderde personen.",
+ "Ignoring people is done through ban lists which contain rules for who to ban. Subscribing to a ban list means the users/servers blocked by that list will be hidden from you.": "Het negeren van personen gaat via banlijsten. Deze bevatten regels over wie verbannen moet worden. Het abonneren op een banlijst betekent dat u de personen/servers die op de lijst staan niet meer zult zien.",
"Personal ban list": "Persoonlijke banlijst",
- "Your personal ban list holds all the users/servers you personally don't want to see messages from. After ignoring your first user/server, a new room will show up in your room list named 'My Ban List' - stay in this room to keep the ban list in effect.": "Uw persoonlijke banlijst bevat alle gebruikers/server waar u geen berichten meer van wilt zien. Nadat u een gebruiker/server heeft genegeerd, zal er een nieuw gesprek worden aangemaakt met de naam ‘Mijn banlijst’. Om de lijst actief te houden dient u het gesprek niet te verlaten.",
- "Server or user ID to ignore": "Server of gebruikers-ID om te negeren",
+ "Your personal ban list holds all the users/servers you personally don't want to see messages from. After ignoring your first user/server, a new room will show up in your room list named 'My Ban List' - stay in this room to keep the ban list in effect.": "Uw persoonlijke banlijst bevat alle personen/servers waar u geen berichten meer van wilt zien. Nadat u een persoon/server heeft genegeerd, zal er een nieuw kamer worden aangemaakt met de naam ‘Mijn banlijst’. Om de lijst actief te houden dient u de kamer niet te verlaten.",
+ "Server or user ID to ignore": "Server of persoon-ID om te negeren",
"eg: @bot:* or example.org": "bijvoorbeeld: @bot:* of voorbeeld.org",
"Subscribed lists": "Abonnementen op lijsten",
"Subscribing to a ban list will cause you to join it!": "Wanneer u zich abonneert op een banlijst zal u eraan worden toegevoegd!",
- "If this isn't what you want, please use a different tool to ignore users.": "Als u dit niet wilt kunt u een andere methode gebruiken om gebruikers te negeren.",
+ "If this isn't what you want, please use a different tool to ignore users.": "Als u dit niet wilt kunt u een andere methode gebruiken om personen te negeren.",
"Subscribe": "Abonneren",
"Enable desktop notifications for this session": "Bureaubladmeldingen voor deze sessie inschakelen",
"Enable audible notifications for this session": "Meldingen met geluid voor deze sessie inschakelen",
@@ -1693,7 +1693,7 @@
"Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Integratiebeheerders ontvangen configuratie-informatie en kunnen widgets aanpassen, gespreksuitnodigingen versturen en machtsniveau’s namens u aanpassen.",
"Ban list rules - %(roomName)s": "Banlijstregels - %(roomName)s",
"Server rules": "Serverregels",
- "User rules": "Gebruikersregels",
+ "User rules": "Persoonsregels",
"Show tray icon and minimize window to it on close": "Geef een pictogram weer in de systeembalk en minimaliseer het venster wanneer het wordt gesloten",
"Session ID:": "Sessie-ID:",
"Session key:": "Sessiesleutel:",
@@ -1702,9 +1702,9 @@
"This room is bridging messages to the following platforms. Learn more.": "Dit gesprek wordt overbrugd naar de volgende platformen. Lees meer",
"This room isn’t bridging messages to any platforms. Learn more.": "Dit gesprek wordt niet overbrugd naar andere platformen. Lees meer.",
"Bridges": "Bruggen",
- "This user has not verified all of their sessions.": "Deze gebruiker heeft niet al zijn sessies geverifieerd.",
- "You have not verified this user.": "U heeft deze gebruiker niet geverifieerd.",
- "You have verified this user. This user has verified all of their sessions.": "U heeft deze gebruiker geverifieerd. Deze gebruiker heeft al zijn sessies geverifieerd.",
+ "This user has not verified all of their sessions.": "Deze persoon heeft niet al zijn sessies geverifieerd.",
+ "You have not verified this user.": "U heeft deze persoon niet geverifieerd.",
+ "You have verified this user. This user has verified all of their sessions.": "U heeft deze persoon geverifieerd. Deze persoon heeft al zijn sessies geverifieerd.",
"Someone is using an unknown session": "Iemand gebruikt een onbekende sessie",
"This room is end-to-end encrypted": "Dit gesprek is eind-tot-eind-versleuteld",
"Everyone in this room is verified": "Iedereen in dit gesprek is geverifieerd",
@@ -1712,8 +1712,8 @@
"rooms.": "gesprekken.",
"Recent rooms": "Actuele gesprekken",
"Direct Messages": "Direct gesprek",
- "If disabled, messages from encrypted rooms won't appear in search results.": "Dit moet aan staan om te kunnen zoeken in versleutelde gesprekken.",
- "Indexed rooms:": "Geïndexeerde gesprekken:",
+ "If disabled, messages from encrypted rooms won't appear in search results.": "Dit moet aan staan om te kunnen zoeken in versleutelde kamers.",
+ "Indexed rooms:": "Geïndexeerde kamers:",
"Cross-signing and secret storage are enabled.": "Kruiselings ondertekenen en sleutelopslag zijn ingeschakeld.",
"Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Uw account heeft een identiteit voor kruiselings ondertekenen in de sleutelopslag, maar die wordt nog niet vertrouwd door de huidige sessie.",
"Cross-signing and secret storage are not yet set up.": "Kruiselings ondertekenen en sleutelopslag zijn nog niet ingesteld.",
@@ -1729,9 +1729,9 @@
"Manage": "Beheren",
"Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "Verbind deze sessie met de sleutelback-up voordat u zich afmeldt. Dit voorkomt dat u sleutels verliest die alleen op deze sessie voorkomen.",
"Connect this session to Key Backup": "Verbind deze sessie met de sleutelback-up",
- "Backup has a valid signature from this user": "De back-up heeft een geldige ondertekening van deze gebruiker",
- "Backup has a invalid signature from this user": "De back-up heeft een ongeldige ondertekening van deze gebruiker",
- "Backup has a signature from unknown user with ID %(deviceId)s": "De back-up heeft een ondertekening van een onbekende gebruiker met ID %(deviceId)s",
+ "Backup has a valid signature from this user": "De back-up heeft een geldige ondertekening van deze persoon",
+ "Backup has a invalid signature from this user": "De back-up heeft een ongeldige ondertekening van deze persoon",
+ "Backup has a signature from unknown user with ID %(deviceId)s": "De back-up heeft een ondertekening van een onbekende persoon met ID %(deviceId)s",
"Backup has a signature from unknown session with ID %(deviceId)s": "De back-up heeft een ondertekening van een onbekende sessie met ID %(deviceId)s",
"Backup has a valid signature from this session": "De back-up heeft een geldige ondertekening van deze sessie",
"Backup has an invalid signature from this session": "De back-up heeft een ongeldige ondertekening van deze sessie",
@@ -1751,10 +1751,10 @@
"Sign In or Create Account": "Meld u aan of maak een account aan",
"Use your account or create a new one to continue.": "Gebruik uw bestaande account of maak een nieuwe aan om verder te gaan.",
"Create Account": "Registreren",
- "Displays information about a user": "Geeft informatie weer over een gebruiker",
- "Order rooms by name": "Gesprekken sorteren op naam",
- "Show rooms with unread notifications first": "Gesprekken met ongelezen meldingen eerst tonen",
- "Show shortcuts to recently viewed rooms above the room list": "Snelkoppelingen naar de gesprekken die u recent heeft bekeken bovenaan de gesprekslijst weergeven",
+ "Displays information about a user": "Geeft informatie weer over een persoon",
+ "Order rooms by name": "Kamers sorteren op naam",
+ "Show rooms with unread notifications first": "Kamers met ongelezen meldingen eerst tonen",
+ "Show shortcuts to recently viewed rooms above the room list": "Snelkoppelingen naar de kamers die u recent heeft bekeken bovenaan de kamerlijst weergeven",
"Cancelling…": "Bezig met annuleren…",
"%(brand)s is missing some components required for securely caching encrypted messages locally. If you'd like to experiment with this feature, build a custom %(brand)s Desktop with search components added.": "In %(brand)s ontbreken enige modulen vereist voor het veilig lokaal bewaren van versleutelde berichten. Wilt u deze functie uittesten, compileer dan een aangepaste versie van %(brand)s Desktop die de zoekmodulen bevat.",
"This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.": "Deze sessie maakt geen back-ups van uw sleutels, maar u beschikt over een reeds bestaande back-up waaruit u kunt herstellen en waaraan u nieuwe sleutels vanaf nu kunt toevoegen.",
@@ -1770,13 +1770,13 @@
"Encrypted by a deleted session": "Versleuteld door een verwijderde sessie",
"Invite only": "Enkel op uitnodiging",
"Close preview": "Voorbeeld sluiten",
- "Failed to deactivate user": "Deactiveren van gebruiker is mislukt",
+ "Failed to deactivate user": "Deactiveren van persoon is mislukt",
"Send a reply…": "Verstuur een antwoord…",
"Send a message…": "Verstuur een bericht…",
"Room %(name)s": "Gesprek %(name)s",
- " wants to chat": " wil een gesprek met u beginnen",
+ " wants to chat": " wil een chat met u beginnen",
"Start chatting": "Gesprek beginnen",
- "Reject & Ignore user": "Weigeren en gebruiker negeren",
+ "Reject & Ignore user": "Weigeren en persoon negeren",
"%(count)s unread messages including mentions.|one": "1 ongelezen vermelding.",
"%(count)s unread messages.|one": "1 ongelezen bericht.",
"Unread messages.": "Ongelezen berichten.",
@@ -1790,17 +1790,17 @@
"Start Verification": "Verificatie beginnen",
"Messages in this room are end-to-end encrypted.": "De berichten in dit gesprek worden eind-tot-eind-versleuteld.",
"Your messages are secured and only you and the recipient have the unique keys to unlock them.": "Uw berichten zijn beveiligd, en enkel de ontvanger en u hebben de unieke sleutels om ze te ontsleutelen.",
- "Verify User": "Gebruiker verifiëren",
- "For extra security, verify this user by checking a one-time code on both of your devices.": "Als extra beveiliging kunt u deze gebruiker verifiëren door een eenmalige code op uw toestellen te controleren.",
+ "Verify User": "Persoon verifiëren",
+ "For extra security, verify this user by checking a one-time code on both of your devices.": "Als extra beveiliging kunt u deze persoon verifiëren door een eenmalige code op jullie toestellen te controleren.",
"Your messages are not secure": "Uw berichten zijn niet veilig",
"One of the following may be compromised:": "Eén van volgende onderdelen kan gecompromitteerd zijn:",
"Your homeserver": "Uw homeserver",
- "The homeserver the user you’re verifying is connected to": "De homeserver waarmee de gebruiker die u probeert te verifiëren verbonden is",
- "Yours, or the other users’ internet connection": "De internetverbinding van uzelf of de andere gebruiker",
- "Yours, or the other users’ session": "De sessie van uzelf of de andere gebruiker",
+ "The homeserver the user you’re verifying is connected to": "De homeserver waarmee de persoon die u probeert te verifiëren verbonden is",
+ "Yours, or the other users’ internet connection": "De internetverbinding van uzelf of de andere persoon",
+ "Yours, or the other users’ session": "De sessie van uzelf of de andere persoon",
"Not Trusted": "Niet vertrouwd",
"%(name)s (%(userId)s) signed in to a new session without verifying it:": "%(name)s%(userId)s heeft zich aangemeld bij een nieuwe sessie zonder deze te verifiëren:",
- "Ask this user to verify their session, or manually verify it below.": "Vraag deze gebruiker haar/zijn sessie te verifiëren, of verifieer die hieronder handmatig.",
+ "Ask this user to verify their session, or manually verify it below.": "Vraag deze persoon de sessie te verifiëren, of verifieer het handmatig hieronder.",
"Done": "Klaar",
"Trusted": "Vertrouwd",
"Not trusted": "Niet vertrouwd",
@@ -1829,7 +1829,7 @@
"The encryption used by this room isn't supported.": "De versleuteling gebruikt in dit gesprek wordt niet ondersteund.",
"React": "Reageren",
"Message Actions": "Berichtacties",
- "You have ignored this user, so their message is hidden. Show anyways.": "U heeft deze gebruiker genegeerd, dus zijn/haar berichten worden verborgen. Toch tonen?",
+ "You have ignored this user, so their message is hidden. Show anyways.": "U heeft deze persoon genegeerd, dus de berichten worden verborgen. Toch tonen?",
"You verified %(name)s": "U heeft %(name)s geverifieerd",
"You cancelled verifying %(name)s": "U heeft de verificatie van %(name)s geannuleerd",
"%(name)s cancelled verifying": "%(name)s heeft de verificatie geannuleerd",
@@ -1859,7 +1859,7 @@
"Any of the following data may be shared:": "De volgende gegevens worden mogelijk gedeeld:",
"Your display name": "Uw weergavenaam",
"Your avatar URL": "De URL van uw afbeelding",
- "Your user ID": "Uw gebruikers-ID",
+ "Your user ID": "Uw persoon-ID",
"Your theme": "Uw thema",
"%(brand)s URL": "%(brand)s-URL",
"Room ID": "Gespreks-ID",
@@ -1880,22 +1880,22 @@
"Session name": "Sessienaam",
"Session key": "Sessiesleutel",
"Verification Requests": "Verificatieverzoeken",
- "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Deze gebruiker verifiëren zal de sessie als vertrouwd markeren voor u en voor hem/haar.",
- "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "Verifieer dit apparaat om het als vertrouwd te markeren. Door dit apparaat te vertrouwen geeft u extra gemoedsrust aan uzelf en andere gebruikers bij het gebruik van eind-tot-eind-versleutelde berichten.",
- "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "Dit apparaat verifiëren zal het als vertrouwd markeren, en gebruikers die met u geverifieerd hebben zullen het vertrouwen.",
+ "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Deze persoon verifiëren zal de sessie als vertrouwd markeren voor u beide.",
+ "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "Verifieer dit apparaat om het als vertrouwd te markeren. Door dit apparaat te vertrouwen geeft u extra zekerheid aan uzelf en andere personen bij het gebruik van eind-tot-eind-versleutelde berichten.",
+ "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "Dit apparaat verifiëren zal het als vertrouwd markeren, en personen die met u geverifieerd hebben zullen het vertrouwen.",
"Integrations are disabled": "Integraties zijn uitgeschakeld",
"Enable 'Manage Integrations' in Settings to do this.": "Schakel de ‘Integratiebeheerder’ in in uw Instellingen om dit te doen.",
"Integrations not allowed": "Integraties niet toegestaan",
"Your %(brand)s doesn't allow you to use an Integration Manager to do this. Please contact an admin.": "Uw %(brand)s laat u geen integratiebeheerder gebruiken om dit te doen. Neem contact op met een beheerder.",
"Failed to invite the following users to chat: %(csvUsers)s": "Het uitnodigen van volgende gebruikers voor gesprek is mislukt: %(csvUsers)s",
"We couldn't create your DM. Please check the users you want to invite and try again.": "Uw direct gesprek kon niet aangemaakt worden. Controleer de gebruikers die u wilt uitnodigen en probeer het opnieuw.",
- "Something went wrong trying to invite the users.": "Er is een fout opgetreden bij het uitnodigen van de gebruikers.",
- "We couldn't invite those users. Please check the users you want to invite and try again.": "Deze gebruikers konden niet uitgenodigd worden. Controleer de gebruikers die u wilt uitnodigen en probeer het opnieuw.",
- "Failed to find the following users": "Kon volgende gebruikers niet vinden",
- "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s": "Volgende gebruikers bestaan mogelijk niet of zijn ongeldig, en kunnen dan ook niet uitgenodigd worden: %(csvNames)s",
+ "Something went wrong trying to invite the users.": "Er is een fout opgetreden bij het uitnodigen van de personen.",
+ "We couldn't invite those users. Please check the users you want to invite and try again.": "Deze personen konden niet uitgenodigd worden. Controleer de personen die u wilt uitnodigen en probeer het opnieuw.",
+ "Failed to find the following users": "Kon volgende personen niet vinden",
+ "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s": "Volgende personen bestaan mogelijk niet of zijn ongeldig, en kunnen niet uitgenodigd worden: %(csvNames)s",
"Recent Conversations": "Recente gesprekken",
"Suggestions": "Suggesties",
- "Recently Direct Messaged": "Recente gesprekken",
+ "Recently Direct Messaged": "Recente directe gesprekken",
"Go": "Start",
"Your account is not secure": "Uw account is onveilig",
"Your password": "Uw wachtwoord",
@@ -1911,7 +1911,7 @@
"Upgrade public room": "Openbaar gesprek upgraden",
"Upgrading a room is an advanced action and is usually recommended when a room is unstable due to bugs, missing features or security vulnerabilities.": "Het bijwerken van een gesprek is een gevorderde actie en wordt meestal aanbevolen wanneer een gesprek onstabiel is door bugs, ontbrekende functies of problemen met de beveiliging.",
"This usually only affects how the room is processed on the server. If you're having problems with your %(brand)s, please report a bug.": "Dit heeft meestal enkel een invloed op de manier waarop het gesprek door de server verwerkt wordt. Als u problemen met uw %(brand)s ondervindt, dien dan een foutmelding in.",
- "You'll upgrade this room from to .": "U upgrade dit gesprek van naar .",
+ "You'll upgrade this room from to .": "U upgrade deze kamer van naar .",
"This will allow you to return to your account after signing out, and sign in on other sessions.": "Daardoor kunt u na afmelding terugkeren tot uw account, en u bij andere sessies aanmelden.",
"Verification Request": "Verificatieverzoek",
"Recovery key mismatch": "Herstelsleutel komt niet overeen",
@@ -1925,15 +1925,15 @@
"Take picture": "Neem een foto",
"Remove for everyone": "Verwijderen voor iedereen",
"Remove for me": "Verwijderen voor mezelf",
- "User Status": "Gebruikersstatus",
+ "User Status": "Persoonsstatus",
"Country Dropdown": "Landselectie",
"Confirm your identity by entering your account password below.": "Bevestig uw identiteit door hieronder uw wachtwoord in te voeren.",
"No identity server is configured so you cannot add an email address in order to reset your password in the future.": "Er is geen identiteitsserver geconfigureerd, dus u kunt geen e-mailadres toevoegen om in de toekomst een nieuw wachtwoord in te stellen.",
"Jump to first unread room.": "Ga naar het eerste ongelezen gesprek.",
"Jump to first invite.": "Ga naar de eerste uitnodiging.",
"Session verified": "Sessie geverifieerd",
- "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Uw nieuwe sessie is nu geverifieerd. U heeft nu toegang tot uw versleutelde berichten en deze sessie zal voor andere gebruikers als vertrouwd gemarkeerd worden.",
- "Your new session is now verified. Other users will see it as trusted.": "Uw nieuwe sessie is nu geverifieerd. Ze zal voor andere gebruikers als vertrouwd gemarkeerd worden.",
+ "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Uw nieuwe sessie is nu geverifieerd. U heeft nu toegang tot uw versleutelde berichten en deze sessie zal voor andere personen als vertrouwd gemarkeerd worden.",
+ "Your new session is now verified. Other users will see it as trusted.": "Uw nieuwe sessie is nu geverifieerd. Deze zal voor andere personen als vertrouwd gemarkeerd worden.",
"Without completing security on this session, it won’t have access to encrypted messages.": "Als u de beveiliging van deze sessie niet vervolledigt, zal ze geen toegang hebben tot uw versleutelde berichten.",
"Go Back": "Terugkeren",
"Changing your password will reset any end-to-end encryption keys on all of your sessions, making encrypted chat history unreadable. Set up Key Backup or export your room keys from another session before resetting your password.": "Door uw wachtwoord te wijzigen stelt u alle eind-tot-eind-versleutelingssleutels op al uw sessies opnieuw in, waardoor uw versleutelde gespreksgeschiedenis onleesbaar wordt. Stel uw sleutelback-up in of sla uw gesprekssleutels van een andere sessie op voor u een nieuw wachtwoord instelt.",
@@ -1946,7 +1946,7 @@
"Restore your key backup to upgrade your encryption": "Herstel uw sleutelback-up om uw versleuteling te upgraden",
"Restore": "Herstellen",
"You'll need to authenticate with the server to confirm the upgrade.": "U zult moeten inloggen bij de server om het upgraden te bevestigen.",
- "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Upgrade deze sessie om er andere sessies mee te verifiëren, waardoor deze ook de toegang verkrijgen tot uw versleutelde berichten en deze voor andere gebruikers als vertrouwd gemarkeerd worden.",
+ "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Upgrade deze sessie om er andere sessies mee te verifiëren. Hiermee krijgen de andere sessies toegang tot uw versleutelde berichten en is het voor andere personen als vertrouwd gemarkeerd .",
"Set up with a recovery key": "Instellen met een herstelsleutel",
"Keep a copy of it somewhere secure, like a password manager or even a safe.": "Bewaar een kopie op een veilige plaats, zoals in een wachtwoordbeheerder of een kluis.",
"Your recovery key": "Uw herstelsleutel",
@@ -2004,7 +2004,7 @@
"Interactively verify by Emoji": "Interactief middels emojis",
"Support adding custom themes": "Sta maatwerkthema's toe",
"Opens chat with the given user": "Start een chat met die persoon",
- "Sends a message to the given user": "Zendt die gebruiker een bericht",
+ "Sends a message to the given user": "Zendt die persoon een bericht",
"Font scaling": "Lettergrootte",
"Verify all your sessions to ensure your account & messages are safe": "Controleer al uw sessies om zeker te zijn dat uw account & berichten veilig zijn",
"Verify the new login accessing your account: %(name)s": "Verifieer de nieuwe login op uw account: %(name)s",
@@ -2017,7 +2017,7 @@
"Help us improve %(brand)s": "Help ons %(brand)s nog beter te maken",
"Send anonymous usage data which helps us improve %(brand)s. This will use a cookie.": "Stuur anonieme gebruiksinformatie waarmee we %(brand)s kunnen verbeteren. Dit plaatst een cookie.",
"I want to help": "Ik wil helpen",
- "Your homeserver has exceeded its user limit.": "Uw homeserver heeft het maximaal aantal gebruikers overschreden.",
+ "Your homeserver has exceeded its user limit.": "Uw homeserver heeft het maximaal aantal personen overschreden.",
"Your homeserver has exceeded one of its resource limits.": "Uw homeserver heeft een van zijn limieten overschreden.",
"Ok": "Oké",
"Light": "Helder",
@@ -2319,15 +2319,15 @@
"We couldn't log you in": "We konden u niet inloggen",
"Room Info": "Gespreksinfo",
"Matrix.org is the biggest public homeserver in the world, so it’s a good place for many.": "Matrix.org is de grootste openbare homeserver van de wereld, dus het is een goede plek voor vele.",
- "Explore Public Rooms": "Verken openbare gesprekken",
- "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "Privégesprekken zijn alleen zichtbaar en toegankelijk met een uitnodiging. Openbare gesprekken zijn zichtbaar en toegankelijk voor iedereen in deze gemeenschap.",
+ "Explore Public Rooms": "Ontdek publieke kamers",
+ "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "Privékamers zijn alleen zichtbaar en toegankelijk met een uitnodiging. Publieke kamers zijn zichtbaar en toegankelijk voor iedereen in deze gemeenschap.",
"This room is public": "Dit gesprek is openbaar",
"Show previews of messages": "Voorvertoning van berichten inschakelen",
"Show message previews for reactions in all rooms": "Berichtvoorbeelden voor reacties in alle kamers tonen",
- "Explore public rooms": "Verken openbare gesprekken",
+ "Explore public rooms": "Ontdek publieke kamers",
"Leave Room": "Gesprek verlaten",
"Room options": "Gesprekopties",
- "Start a conversation with someone using their name, email address or username (like ).": "Start een gesprek met iemand door hun naam, emailadres of gebruikersnaam (zoals ) te typen.",
+ "Start a conversation with someone using their name, email address or username (like ).": "Start een gesprek met iemand door hun naam, e-mailadres of inlognaam (zoals ) te typen.",
"Messages here are end-to-end encrypted. Verify %(displayName)s in their profile - tap on their avatar.": "Berichten hier zijn eind-tot-eind versleuteld. Verifieer %(displayName)s op hun profiel - klik op hun afbeelding.",
"%(creator)s created this DM.": "%(creator)s maakte deze DM.",
"Switch to dark mode": "Naar donkere modus wisselen",
@@ -2346,14 +2346,14 @@
"Use default": "Gebruik standaardinstelling",
"Show %(count)s more|one": "Toon %(count)s meer",
"Show %(count)s more|other": "Toon %(count)s meer",
- "Show rooms with unread messages first": "Gesprekken met ongelezen berichten als eerste tonen",
+ "Show rooms with unread messages first": "Kamers met ongelezen berichten als eerste tonen",
"%(count)s results|one": "%(count)s resultaten",
"%(count)s results|other": "%(count)s resultaten",
"Explore all public rooms": "Verken alle openbare gespreken",
"Start a new chat": "Nieuw gesprek beginnen",
"Can't see what you’re looking for?": "Niet kunnen vinden waar u naar zocht?",
"Custom Tag": "Aangepast label",
- "Explore community rooms": "Gemeenschapsgesprekken verkennen",
+ "Explore community rooms": "Gemeenschapskamers verkennen",
"Start a Conversation": "Begin een gesprek",
"Show Widgets": "Widgets tonen",
"Hide Widgets": "Widgets verbergen",
@@ -2363,7 +2363,7 @@
"Topic: %(topic)s ": "Onderwerp: %(topic)s ",
"Topic: %(topic)s (edit)": "Onderwerp: %(topic)s (bewerken)",
"This is the beginning of your direct message history with .": "Dit is het begin van de geschiedenis van uw direct gesprek met .",
- "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "De beheerder van uw server heeft eind-tot-eind-versleuteling standaard uitgeschakeld in alle privégesprekken en directe gesprekken.",
+ "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "De beheerder van uw server heeft eind-tot-eind-versleuteling standaard uitgeschakeld in alle privékamers en directe gesprekken.",
"Scroll to most recent messages": "Spring naar meest recente bericht",
"The authenticity of this encrypted message can't be guaranteed on this device.": "De echtheid van dit versleutelde bericht kan op dit apparaat niet worden gegarandeerd.",
"To link to this room, please add an address.": "Voeg een adres toe om naar dit gesprek te kunnen verwijzen.",
@@ -2425,7 +2425,7 @@
"Use a more compact ‘Modern’ layout": "Compacte 'Modern'-layout inschakelen",
"Use custom size": "Aangepaste lettergrootte gebruiken",
"Font size": "Lettergrootte",
- "Enable advanced debugging for the room list": "Geavanceerde bugopsporing voor de gesprekkenlijst inschakelen",
+ "Enable advanced debugging for the room list": "Geavanceerde bugopsporing voor de kamerlijst inschakelen",
"Render LaTeX maths in messages": "Weergeef LaTeX-wiskundenotatie in berichten",
"Change notification settings": "Meldingsinstellingen wijzigen",
"%(senderName)s: %(stickerName)s": "%(senderName)s: %(stickerName)s",
@@ -2474,7 +2474,7 @@
"Matrix": "Matrix",
"Are you sure you want to remove %(serverName)s": "Weet u zeker dat u %(serverName)s wilt verwijderen",
"Your server": "Uw server",
- "Can't find this server or its room list": "Kan deze server of de gesprekkenlijst niet vinden",
+ "Can't find this server or its room list": "Kan de server of haar kamerlijst niet vinden",
"Looks good": "Ziet er goed uit",
"Enter a server name": "Geef een servernaam",
"Continue with %(provider)s": "Doorgaan met %(provider)s",
@@ -2515,7 +2515,7 @@
"Unpin a widget to view it in this panel": "Maak een widget los om het in dit deel te weergeven",
"Unpin": "Losmaken",
"You can only pin up to %(count)s widgets|other": "U kunt maar %(count)s widgets vastzetten",
- "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "In versleutelde gesprekken zijn uw berichten beveiligd, enkel de ontvanger en u hebben de unieke sleutels om ze te ontsleutelen.",
+ "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "In versleutelde kamers zijn uw berichten beveiligd, enkel de ontvanger en u hebben de unieke sleutels om ze te ontsleutelen.",
"Waiting for you to accept on your other session…": "Wachten totdat u uw uitnodiging in uw andere sessie aanneemt…",
"Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Stel een adres in zodat personen dit gesprek via uw homeserver (%(localDomain)s) kunnen vinden",
"Local Addresses": "Lokale adressen",
@@ -2529,12 +2529,12 @@
"Just a heads up, if you don't add an email and forget your password, you could permanently lose access to your account.": "Let op, wanneer u geen e-mailadres toevoegt en uw wachtwoord vergeet, kunt u toegang tot uw account permanent verliezen.",
"Continuing without email": "Doorgaan zonder e-mail",
"If they don't match, the security of your communication may be compromised.": "Als deze niet overeenkomen, dan wordt deze sessie mogelijk door iemand anders onderschept.",
- "Confirm by comparing the following with the User Settings in your other session:": "Om te verifiëren dat deze sessie vertrouwd kan worden, contacteert u de eigenaar via een andere methode (bv. persoonlijk of via een telefoontje) en vraagt u hem/haar of de sleutel die hij/zij ziet in zijn/haar Gebruikersinstellingen van deze sessie overeenkomt met de sleutel hieronder:",
+ "Confirm by comparing the following with the User Settings in your other session:": "Bevestig door het volgende te vergelijken met de persoonsinstellingen in uw andere sessie:",
"Signature upload failed": "Versturen van ondertekening mislukt",
"Signature upload success": "Ondertekening succesvol verstuurd",
"Unable to upload": "Versturen niet mogelijk",
"Transfer": "Doorschakelen",
- "Start a conversation with someone using their name or username (like ).": "Start een gesprek met iemand door hun naam of gebruikersnaam (zoals ) te typen.",
+ "Start a conversation with someone using their name or username (like ).": "Start een gesprek met iemand door hun naam of inlognaam (zoals ) te typen.",
"May include members not in %(communityName)s": "Mag deelnemers bevatten die geen deel uitmaken van %(communityName)s",
"Invite by email": "Via e-mail uitnodigen",
"Click the button below to confirm your identity.": "Druk op de knop hieronder om uw identiteit te bevestigen.",
@@ -2634,15 +2634,15 @@
"Oman": "Oman",
"Theme added!": "Thema toegevoegd!",
"Add theme": "Thema toevoegen",
- "No recently visited rooms": "Geen onlangs bezochte gesprekken",
+ "No recently visited rooms": "Geen onlangs bezochte kamers",
"Use the Desktop app to see all encrypted files": "Gebruik de Desktop-app om alle versleutelde bestanden te zien",
"Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Herinnering: Uw browser wordt niet ondersteund. Dit kan een negatieve impact hebben op uw ervaring.",
"Use this when referencing your community to others. The community ID cannot be changed.": "Gebruik dit om anderen naar uw gemeenschap te verwijzen. De gemeenschaps-ID kan later niet meer veranderd worden.",
"Please go into as much detail as you like, so we can track down the problem.": "Gebruik a.u.b. zoveel mogelijk details, zodat wij uw probleem kunnen vinden.",
"There are two ways you can provide feedback and help us improve %(brand)s.": "U kunt op twee manieren feedback geven en ons helpen %(brand)s te verbeteren.",
"Please view existing bugs on Github first. No match? Start a new one.": "Bekijk eerst de bestaande bugs op GitHub. Maak een nieuwe aan wanneer u uw bugs niet heeft gevonden.",
- "Invite someone using their name, email address, username (like ) or share this room.": "Nodig iemand uit door gebruik te maken van hun naam, e-mailadres, gebruikersnaam (zoals ) of deel dit gesprek.",
- "Invite someone using their name, username (like ) or share this room.": "Nodig iemand uit door gebruik te maken van hun naam, gebruikersnaam (zoals ) of deel dit gesprek.",
+ "Invite someone using their name, email address, username (like ) or share this room.": "Nodig iemand uit door gebruik te maken van hun naam, e-mailadres, inlognaam (zoals ) of deel dit gesprek.",
+ "Invite someone using their name, username (like ) or share this room.": "Nodig iemand uit door gebruik te maken van hun naam, inlognaam (zoals ) of deel dit gesprek.",
"Send feedback": "Feedback versturen",
"Feedback": "Feedback",
"Feedback sent": "Feedback verstuurd",
@@ -2741,29 +2741,29 @@
"Already have an account? Sign in here": "Heeft u al een account? Inloggen",
"%(ssoButtons)s Or %(usernamePassword)s": "%(ssoButtons)s of %(usernamePassword)s",
"Continue with %(ssoButtons)s": "Ga verder met %(ssoButtons)s",
- "That username already exists, please try another.": "Die gebruikersnaam bestaat al, probeer een andere.",
+ "That username already exists, please try another.": "Die inlognaam bestaat al, probeer een andere.",
"New? Create account": "Nieuw? Maak een account aan",
- "If you've joined lots of rooms, this might take a while": "Als u zich bij veel gesprekken heeft aangesloten, kan dit een tijdje duren",
+ "If you've joined lots of rooms, this might take a while": "Als u zich bij veel kamers heeft aangesloten, kan dit een tijdje duren",
"Signing In...": "Inloggen...",
"Syncing...": "Synchroniseren...",
"There was a problem communicating with the homeserver, please try again later.": "Er was een communicatieprobleem met de homeserver, probeer het later opnieuw.",
- "Community and user menu": "Gemeenschaps- en gebruikersmenu",
- "User menu": "Gebruikersmenu",
+ "Community and user menu": "Gemeenschaps- en persoonsmenu",
+ "User menu": "Persoonsmenu",
"Switch theme": "Thema wisselen",
"Community settings": "Gemeenschapsinstellingen",
- "User settings": "Gebruikersinstellingen",
+ "User settings": "Persoonsinstellingen",
"Security & privacy": "Veiligheid & privacy",
"New here? Create an account": "Nieuw hier? Maak een account",
"Got an account? Sign in": "Heeft u een account? Inloggen",
"Failed to find the general chat for this community": "De algemene chat voor deze gemeenschap werd niet gevonden",
"Filter rooms and people": "Gespreken en personen filteren",
- "Explore rooms in %(communityName)s": "Ontdek de gesprekken van %(communityName)s",
+ "Explore rooms in %(communityName)s": "Ontdek de kamers van %(communityName)s",
"delete the address.": "het adres verwijderen.",
"Delete the room address %(alias)s and remove %(name)s from the directory?": "Het kameradres %(alias)s en %(name)s uit de gids verwijderen?",
"You have no visible notifications.": "U hebt geen zichtbare meldingen.",
"You’re all caught up": "U bent helemaal bij",
"Self-verification request": "Verzoek om zelfverificatie",
- "You do not have permission to create rooms in this community.": "U hebt geen toestemming om gesprekken te maken in deze gemeenschap.",
+ "You do not have permission to create rooms in this community.": "U hebt geen toestemming om kamers te maken in deze gemeenschap.",
"Cannot create rooms in this community": "Kan geen gesprek maken in deze gemeenschap",
"Upgrade to pro": "Upgrade naar pro",
"Now, let's help you get started": "Laten we u helpen om te beginnen",
@@ -2821,7 +2821,7 @@
"Looks good!": "Ziet er goed uit!",
"Wrong file type": "Verkeerd bestandstype",
"Remember this": "Onthoud dit",
- "The widget will verify your user ID, but won't be able to perform actions for you:": "De widget zal uw gebruikers-ID verifiëren, maar zal geen acties voor u kunnen uitvoeren:",
+ "The widget will verify your user ID, but won't be able to perform actions for you:": "De widget zal uw persoon-ID verifiëren, maar zal geen acties voor u kunnen uitvoeren:",
"Allow this widget to verify your identity": "Sta deze widget toe om uw identiteit te verifiëren",
"Decline All": "Alles weigeren",
"Approve": "Goedkeuren",
@@ -2838,7 +2838,7 @@
"We recommend you change your password and Security Key in Settings immediately": "Wij raden u aan uw wachtwoord en veiligheidssleutel in de instellingen onmiddellijk te wijzigen",
"Data on this screen is shared with %(widgetDomain)s": "Gegevens op dit scherm worden gedeeld met %(widgetDomain)s",
"Modal Widget": "Modale widget",
- "Confirm this user's session by comparing the following with their User Settings:": "Bevestig de sessie van deze gebruiker door het volgende te vergelijken met zijn gebruikersinstellingen:",
+ "Confirm this user's session by comparing the following with their User Settings:": "Bevestig de sessie van deze persoon door het volgende te vergelijken met zijn persoonsinstellingen:",
"Cancelled signature upload": "Geannuleerde ondertekening upload",
"%(brand)s encountered an error during upload of:": "%(brand)s is een fout tegengekomen tijdens het uploaden van:",
"a key signature": "een sleutel ondertekening",
@@ -2847,7 +2847,7 @@
"a new master key signature": "een nieuwe hoofdsleutel ondertekening",
"This won't invite them to %(communityName)s. To invite someone to %(communityName)s, click here": "Dit zal ze niet uitnodigen voor %(communityName)s. Als u iemand wilt uitnodigen voor %(communityName)s, klik hier",
"Failed to transfer call": "Oproep niet doorverbonden",
- "A call can only be transferred to a single user.": "Een oproep kan slechts naar één gebruiker worden doorverbonden.",
+ "A call can only be transferred to a single user.": "Een oproep kan slechts naar één personen worden doorverbonden.",
"Learn more in our , and .": "Meer informatie vindt u in onze , en .",
"Continuing temporarily allows the %(hostSignupBrand)s setup process to access your account to fetch verified email addresses. This data is not stored.": "Door tijdelijk door te gaan, krijgt het installatieproces van %(hostSignupBrand)s toegang tot uw account om geverifieerde e-mailadressen op te halen. Deze gegevens worden niet opgeslagen.",
"Failed to connect to your homeserver. Please close this dialog and try again.": "Kan geen verbinding maken met uw homeserver. Sluit dit dialoogvenster en probeer het opnieuw.",
@@ -2878,18 +2878,18 @@
"You can’t disable this later. Bridges & most bots won’t work yet.": "U kunt dit later niet uitschakelen. Bruggen en de meeste bots zullen nog niet werken.",
"There was an error creating your community. The name may be taken or the server is unable to process your request.": "Er is een fout opgetreden bij het aanmaken van uw gemeenschap. De naam kan bezet zijn of de server is niet in staat om uw aanvraag te verwerken.",
"Preparing to download logs": "Klaarmaken om logs te downloaden",
- "Matrix rooms": "Matrix-gesprekken",
- "%(networkName)s rooms": "%(networkName)s gesprekken",
+ "Matrix rooms": "Matrix-kamers",
+ "%(networkName)s rooms": "%(networkName)s kamers",
"Enter the name of a new server you want to explore.": "Voer de naam in van een nieuwe server die u wilt verkennen.",
"Remove server": "Server verwijderen",
- "All rooms": "Alle gesprekken",
+ "All rooms": "Alle kamers",
"Windows": "Windows",
"Screens": "Schermen",
"Share your screen": "Uw scherm delen",
"Submit logs": "Logs versturen",
"Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "Berichten in deze kamer zijn eind-tot-eind-versleuteld. Als personen deelnemen, kan u ze verifiëren in hun profiel, tik hiervoor op hun afbeelding.",
- "In encrypted rooms, verify all users to ensure it’s secure.": "Controleer alle gebruikers in versleutelde gesprekken om er zeker van te zijn dat het veilig is.",
- "Verify all users in a room to ensure it's secure.": "Controleer alle gebruikers in een gesprek om er zeker van te zijn dat het veilig is.",
+ "In encrypted rooms, verify all users to ensure it’s secure.": "Controleer alle personen in versleutelde kamers om er zeker van te zijn dat het veilig is.",
+ "Verify all users in a room to ensure it's secure.": "Controleer alle personen in een kamer om er zeker van te zijn dat het veilig is.",
"%(count)s people|one": "%(count)s persoon",
"Add widgets, bridges & bots": "Widgets, bruggen & bots toevoegen",
"Edit widgets, bridges & bots": "Widgets, bruggen & bots bewerken",
@@ -2900,14 +2900,14 @@
"Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "Gepubliceerde adressen kunnen door iedereen op elke server gebruikt worden om aan je groep deel te nemen. Om een adres te publiceren moet het eerste ingesteld worden als lokaaladres.",
"Published Addresses": "Gepubliceerde adressen",
"Mentions & Keywords": "Vermeldingen & Trefwoorden",
- "Use the + to make a new room or explore existing ones below": "Gebruik de + om een nieuw gesprek te beginnen of ontdek de bestaande gesprekken hieronder",
+ "Use the + to make a new room or explore existing ones below": "Gebruik de + om een nieuwe kamer te beginnen of ontdek de bestaande kamers hieronder",
"Open dial pad": "Kiestoetsen openen",
- "Recently visited rooms": "Onlangs geopende gesprekken",
+ "Recently visited rooms": "Onlangs geopende kamers",
"Add a photo, so people can easily spot your room.": "Voeg een foto toe, zodat personen u gemakkelijk kunnen herkennen in het gesprek.",
"Only the two of you are in this conversation, unless either of you invites anyone to join.": "Alleen u beiden nemen deel aan dit gesprek, tenzij een van u beiden iemand uitnodigt om deel te nemen.",
"Emoji picker": "Emoji kiezer",
"Room ID or address of ban list": "Gesprek-ID of het adres van de banlijst",
- "Add users and servers you want to ignore here. Use asterisks to have %(brand)s match any characters. For example, @bot:* would ignore all users that have the name 'bot' on any server.": "Voeg hier gebruikers en servers toe die u wilt negeren. Gebruik asterisken om %(brand)s met alle tekens te laten overeenkomen. Bijvoorbeeld, @bot:* zou alle gebruikers negeren die de naam 'bot' hebben op elke server.",
+ "Add users and servers you want to ignore here. Use asterisks to have %(brand)s match any characters. For example, @bot:* would ignore all users that have the name 'bot' on any server.": "Voeg hier personen en servers toe die u wilt negeren. Gebruik asterisken om %(brand)s met alle tekens te laten overeenkomen. Bijvoorbeeld, @bot:* zou alle personen negeren die de naam 'bot' hebben op elke server.",
"Please verify the room ID or address and try again.": "Controleer het gesprek-ID of het adres en probeer het opnieuw.",
"Message layout": "Berichtlayout",
"Custom theme URL": "Aangepaste thema-URL",
@@ -2920,9 +2920,9 @@
"well formed": "goed gevormd",
"%(brand)s can't securely cache encrypted messages locally while running in a web browser. Use %(brand)s Desktop for encrypted messages to appear in search results.": "%(brand)s kan versleutelde berichten niet veilig lokaal opslaan in een webbrowser. Gebruik %(brand)s Desktop om versleutelde berichten in zoekresultaten te laten verschijnen.",
"Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|one": "Veilig lokaal opslaan van versleutelde berichten zodat ze in de zoekresultaten verschijnen, gebruik %(size)s voor het opslaan van berichten uit %(rooms)s gesprek.",
- "Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|other": "Veilig lokaal opslaan van versleutelde berichten zodat ze in de zoekresultaten verschijnen, gebruik %(size)s voor het opslaan van berichten uit %(rooms)s gesprekken.",
- "Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Verifieer elke sessie die door een gebruiker wordt gebruikt afzonderlijk. Dit markeert hem als vertrouwd zonder te vertrouwen op kruislings ondertekende apparaten.",
- "User signing private key:": "Gebruikerondertekening-privésleutel:",
+ "Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|other": "Veilig lokaal opslaan van versleutelde berichten zodat ze in de zoekresultaten verschijnen, gebruik %(size)s voor het opslaan van berichten uit %(rooms)s kamers.",
+ "Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Verifieer elke sessie die door een persoon wordt gebruikt afzonderlijk. Dit markeert hem als vertrouwd zonder te vertrouwen op kruislings ondertekende apparaten.",
+ "User signing private key:": "Persoonsondertekening-privésleutel:",
"Master private key:": "Hoofdprivésleutel:",
"Self signing private key:": "Zelfondertekening-privésleutel:",
"Cross-signing is not set up.": "Kruiselings ondertekenen is niet ingesteld.",
@@ -2951,7 +2951,7 @@
"Send a Direct Message": "Start een direct gesprek",
"Welcome to %(appName)s": "Welkom bij %(appName)s",
"Add a topic to help people know what it is about.": "Stel een gespreksonderwerp in zodat de personen weten waar het over gaat.",
- "Upgrade to %(hostSignupBrand)s": "Upgrade naar %(hostSignupBrand)s",
+ "Upgrade to %(hostSignupBrand)s": "%(hostSignupBrand)s upgrade",
"Edit Values": "Waarde wijzigen",
"Values at explicit levels in this room:": "Waarde op expliciete niveaus in dit gesprek:",
"Values at explicit levels:": "Waardes op expliciete niveaus:",
@@ -2981,9 +2981,9 @@
"We'll create rooms for each topic.": "We maken gesprekken voor elk onderwerp.",
"What are some things you want to discuss?": "Wat zijn dingen die u wilt bespreken?",
"Inviting...": "Uitnodigen...",
- "Invite by username": "Op gebruikersnaam uitnodigen",
+ "Invite by username": "Op inlognaam uitnodigen",
"Invite your teammates": "Uw teamgenoten uitnodigen",
- "Failed to invite the following users to your space: %(csvUsers)s": "Het uitnodigen van de volgende gebruikers voor uw space is mislukt: %(csvUsers)s",
+ "Failed to invite the following users to your space: %(csvUsers)s": "Het uitnodigen van de volgende personen voor uw space is mislukt: %(csvUsers)s",
"A private space for you and your teammates": "Een privé space voor u en uw teamgenoten",
"Me and my teammates": "Ik en mijn teamgenoten",
"A private space just for you": "Een privé space alleen voor u",
@@ -2992,9 +2992,9 @@
"Who are you working with?": "Met wie werkt u samen?",
"Finish": "Voltooien",
"At the moment only you can see it.": "Op dit moment kan u deze alleen zien.",
- "Creating rooms...": "Gesprekken aanmaken...",
+ "Creating rooms...": "Kamers aanmaken...",
"Skip for now": "Voorlopig overslaan",
- "Failed to create initial space rooms": "Het maken van de space gesprekken is mislukt",
+ "Failed to create initial space rooms": "Het maken van de space kamers is mislukt",
"Room name": "Gespreksnaam",
"Support": "Ondersteuning",
"Random": "Willekeurig",
@@ -3032,8 +3032,8 @@
"Failed to save space settings.": "Het opslaan van de space-instellingen is mislukt.",
"Space settings": "Space-instellingen",
"Edit settings relating to your space.": "Bewerk instellingen gerelateerd aan uw space.",
- "Invite someone using their name, username (like ) or share this space.": "Nodig iemand uit per naam, gebruikersnaam (zoals ) of deel deze space.",
- "Invite someone using their name, email address, username (like ) or share this space.": "Nodig iemand uit per naam, e-mailadres, gebruikersnaam (zoals ) of deel deze space.",
+ "Invite someone using their name, username (like ) or share this space.": "Nodig iemand uit per naam, inlognaam (zoals ) of deel deze space.",
+ "Invite someone using their name, email address, username (like ) or share this space.": "Nodig iemand uit per naam, e-mailadres, inlognaam (zoals ) of deel deze space.",
"Unnamed Space": "Naamloze space",
"Invite to %(spaceName)s": "Voor %(spaceName)s uitnodigen",
"Failed to add rooms to space": "Het toevoegen van gesprekken aan de space is mislukt",
@@ -3045,13 +3045,13 @@
"Filter your rooms and spaces": "Gesprekken en spaces filteren",
"Add existing spaces/rooms": "Bestaande spaces/gesprekken toevoegen",
"Space selection": "Space-selectie",
- "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the space it will be impossible to regain privileges.": "U kunt deze wijziging niet ongedaan maken omdat u uzelf rechten ontneemt, als u de laatste bevoegde gebruiker in de ruimte bent zal het onmogelijk zijn om weer rechten te krijgen.",
+ "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the space it will be impossible to regain privileges.": "U kunt deze wijziging niet ongedaan maken, omdat u uzelf rechten ontneemt. Als u de laatste bevoegde persoon in de space bent zal het onmogelijk zijn om weer rechten te krijgen.",
"Empty room": "Leeg gesprek",
"Suggested Rooms": "Gespreksuggesties",
"Explore space rooms": "Space-gesprekken ontdekken",
- "You do not have permissions to add rooms to this space": "U hebt geen toestemming om gesprekken toe te voegen in deze space",
- "Add existing room": "Bestaande gesprekken toevoegen",
- "You do not have permissions to create new rooms in this space": "U hebt geen toestemming om gesprekken te maken in deze space",
+ "You do not have permissions to add rooms to this space": "U hebt geen toestemming om kamers toe te voegen in deze space",
+ "Add existing room": "Bestaande kamers toevoegen",
+ "You do not have permissions to create new rooms in this space": "U hebt geen toestemming om kamers te maken in deze space",
"Send message": "Bericht versturen",
"Invite to this space": "Uitnodigen voor deze space",
"Your message was sent": "Uw bericht is verstuurd",
@@ -3090,10 +3090,10 @@
"You're already in a call with this person.": "U bent al een oproep met deze persoon.",
"Verify this login to access your encrypted messages and prove to others that this login is really you.": "Verifieer deze login om toegang te krijgen tot uw versleutelde berichten en om anderen te bewijzen dat deze login echt van u is.",
"Verify with another session": "Verifieer met een andere sessie",
- "We'll create rooms for each of them. You can add more later too, including already existing ones.": "We zullen voor elk een gesprek maken. U kunt er later meer toevoegen, inclusief al bestaande gesprekken.",
+ "We'll create rooms for each of them. You can add more later too, including already existing ones.": "We zullen voor elk een kamer maken. U kunt er later meer toevoegen, inclusief al bestaande kamers.",
"Let's create a room for each of them. You can add more later too, including already existing ones.": "Laten we voor elk een gesprek maken. U kunt er later meer toevoegen, inclusief al bestaande gesprekken.",
"Make sure the right people have access. You can invite more later.": "Controleer of de juiste mensen toegang hebben. U kunt later meer mensen uitnodigen.",
- "A private space to organise your rooms": "Een privé space om uw gesprekken te organiseren",
+ "A private space to organise your rooms": "Een privé space om uw kamers te organiseren",
"Just me": "Alleen ik",
"Make sure the right people have access to %(name)s": "Controleer of de juiste mensen toegang hebben tot %(name)s",
"Go to my first room": "Ga naar mijn eerste gesprek",
@@ -3109,16 +3109,16 @@
"Mark as suggested": "Markeer als aanbeveling",
"Mark as not suggested": "Markeer als geen aanbeveling",
"Removing...": "Verwijderen...",
- "Failed to remove some rooms. Try again later": "Het verwijderen van sommige gesprekken is mislukt. Probeer het opnieuw",
+ "Failed to remove some rooms. Try again later": "Het verwijderen van sommige kamers is mislukt. Probeer het opnieuw",
"%(count)s rooms and 1 space|one": "%(count)s gesprek en 1 space",
- "%(count)s rooms and 1 space|other": "%(count)s gesprekken en 1 space",
+ "%(count)s rooms and 1 space|other": "%(count)s kamers en 1 space",
"%(count)s rooms and %(numSpaces)s spaces|one": "%(count)s gesprek en %(numSpaces)s spaces",
- "%(count)s rooms and %(numSpaces)s spaces|other": "%(count)s gesprekken en %(numSpaces)s spaces",
+ "%(count)s rooms and %(numSpaces)s spaces|other": "%(count)s kamers en %(numSpaces)s spaces",
"If you can't find the room you're looking for, ask for an invite or create a new room.": "Als u uw gesprek niet kan vinden, vraag dan om een uitnodiging of maak een nieuw gesprek.",
"Suggested": "Aanbevolen",
"This room is suggested as a good one to join": "Dit is een aanbevolen gesprek om aan deel te nemen",
"%(count)s rooms|one": "%(count)s gesprek",
- "%(count)s rooms|other": "%(count)s gesprekken",
+ "%(count)s rooms|other": "%(count)s kamers",
"You don't have permission": "U heeft geen toestemming",
"Open": "Openen",
"%(count)s messages deleted.|one": "%(count)s bericht verwijderd.",
@@ -3127,7 +3127,7 @@
"Invite to %(roomName)s": "Uitnodiging voor %(roomName)s",
"Edit devices": "Apparaten bewerken",
"Invite People": "Mensen uitnodigen",
- "Invite with email or username": "Uitnodigen per e-mail of gebruikersnaam",
+ "Invite with email or username": "Uitnodigen per e-mail of inlognaam",
"You can change these anytime.": "U kan dit elk moment nog aanpassen.",
"Add some details to help people recognise it.": "Voeg details toe zodat mensen het herkennen.",
"Spaces are new ways to group rooms and people. To join an existing space you'll need an invite.": "Spaces zijn een nieuwe manier voor het groeperen van gesprekken. Voor deelname aan een bestaande space heeft u een uitnodiging nodig.",
@@ -3139,7 +3139,7 @@
"Verify your identity to access encrypted messages and prove your identity to others.": "Verifeer uw identiteit om toegang te krijgen tot uw versleutelde berichten en om uw identiteit te bewijzen voor anderen.",
"Use another login": "Gebruik andere login",
"Please choose a strong password": "Kies een sterk wachtwoord",
- "You can add more later too, including already existing ones.": "U kunt er later nog meer toevoegen, inclusief al bestaande gesprekken.",
+ "You can add more later too, including already existing ones.": "U kunt er later nog meer toevoegen, inclusief al bestaande kamers.",
"Let's create a room for each of them.": "Laten we voor elk een los gesprek maken.",
"What are some things you want to discuss in %(spaceName)s?": "Wat wilt u allemaal bespreken in %(spaceName)s?",
"Verification requested": "Verificatieverzocht",
@@ -3153,7 +3153,7 @@
"Invited people will be able to read old messages.": "Uitgenodigde personen kunnen de oude berichten lezen.",
"We couldn't create your DM.": "We konden uw DM niet aanmaken.",
"Adding...": "Toevoegen...",
- "Add existing rooms": "Bestaande gesprekken toevoegen",
+ "Add existing rooms": "Bestaande kamers toevoegen",
"%(count)s people you know have already joined|one": "%(count)s persoon die u kent is al geregistreerd",
"%(count)s people you know have already joined|other": "%(count)s personen die u kent hebben zijn al geregistreerd",
"Accept on your other login…": "Accepteer op uw andere login…",
@@ -3164,7 +3164,7 @@
"Invite to just this room": "Uitnodigen voor alleen dit gesprek",
"Warn before quitting": "Waarschuwen voordat u afsluit",
"Message search initilisation failed": "Zoeken in berichten opstarten is mislukt",
- "Manage & explore rooms": "Beheer & ontdek gesprekken",
+ "Manage & explore rooms": "Beheer & ontdek kamers",
"Consulting with %(transferTarget)s. Transfer to %(transferee)s": "Overleggen met %(transferTarget)s. Verstuur naar %(transferee)s",
"unknown person": "onbekend persoon",
"Share decryption keys for room history when inviting users": "Deel ontsleutelsleutels voor de gespreksgeschiedenis wanneer u personen uitnodigd",
@@ -3173,7 +3173,7 @@
"Review to ensure your account is safe": "Controleer ze zodat uw account veilig is",
"Sends the given message as a spoiler": "Verstuurt het bericht als een spoiler",
"You are the only person here. If you leave, no one will be able to join in the future, including you.": "U bent de enige persoon hier. Als u weggaat, zal niemand in de toekomst kunnen toetreden, u ook niet.",
- "If you reset everything, you will restart with no trusted sessions, no trusted users, and might not be able to see past messages.": "Als u alles reset, zult u opnieuw opstarten zonder vertrouwde sessies, zonder vertrouwde gebruikers, en zult u misschien geen vroegere berichten meer kunnen zien.",
+ "If you reset everything, you will restart with no trusted sessions, no trusted users, and might not be able to see past messages.": "Als u alles reset zult u opnieuw opstarten zonder vertrouwde sessies, zonder vertrouwde personen, en zult u misschien geen oude berichten meer kunnen zien.",
"Only do this if you have no other device to complete verification with.": "Doe dit alleen als u geen ander apparaat hebt om de verificatie mee uit te voeren.",
"Reset everything": "Alles opnieuw instellen",
"Forgotten or lost all recovery methods? Reset all": "Alles vergeten en alle herstelmethoden verloren? Alles opnieuw instellen",
@@ -3203,7 +3203,7 @@
"Stop the recording": "Opname stoppen",
"%(count)s results in all spaces|one": "%(count)s resultaat in alle spaces",
"%(count)s results in all spaces|other": "%(count)s resultaten in alle spaces",
- "You have no ignored users.": "U heeft geen gebruiker genegeerd.",
+ "You have no ignored users.": "U heeft geen persoon genegeerd.",
"Play": "Afspelen",
"Pause": "Pauze",
"This is an experimental feature. For now, new users receiving an invite will have to open the invite on to actually join.": "Dit is een experimentele functie. Voorlopig moeten nieuwe personen die een uitnodiging krijgen de gebruiken om daadwerkelijk deel te nemen.",
@@ -3218,11 +3218,11 @@
"Spaces is a beta feature": "Spaces zijn in beta",
"Want to add a new room instead?": "Wilt u anders een nieuw gesprek toevoegen?",
"Adding rooms... (%(progress)s out of %(count)s)|one": "Gesprek toevoegen...",
- "Adding rooms... (%(progress)s out of %(count)s)|other": "Gesprekken toevoegen... (%(progress)s van %(count)s)",
+ "Adding rooms... (%(progress)s out of %(count)s)|other": "Kamers toevoegen... (%(progress)s van %(count)s)",
"Not all selected were added": "Niet alle geselecteerden zijn toegevoegd",
"You can add existing spaces to a space.": "U kunt bestaande spaces toevoegen aan een space.",
"Feeling experimental?": "Zin in een experiment?",
- "You are not allowed to view this server's rooms list": "U heeft geen toegang tot deze server zijn gesprekkenlijst",
+ "You are not allowed to view this server's rooms list": "U heeft geen toegang tot deze server zijn kamerlijst",
"Error processing voice message": "Fout bij verwerking spraakbericht",
"We didn't find a microphone on your device. Please check your settings and try again.": "We hebben geen microfoon gevonden op uw apparaat. Controleer uw instellingen en probeer het opnieuw.",
"No microphone found": "Geen microfoon gevonden",
@@ -3240,13 +3240,13 @@
"%(brand)s will reload with Spaces enabled. Communities and custom tags will be hidden.": "%(brand)s zal herladen met Spaces ingeschakeld. Gemeenschappen en labels worden verborgen.",
"Beta available for web, desktop and Android. Thank you for trying the beta.": "De beta is beschikbaar voor web, desktop en Android. Bedankt dat u de beta wilt proberen.",
"%(brand)s will reload with Spaces disabled. Communities and custom tags will be visible again.": "%(brand)s zal herladen met Spaces uitgeschakeld. Gemeenschappen en labels zullen weer zichtbaar worden.",
- "Spaces are a new way to group rooms and people.": "Spaces zijn de nieuwe manier om gesprekken en personen te groeperen.",
+ "Spaces are a new way to group rooms and people.": "Spaces zijn de nieuwe manier om kamers en personen te groeperen.",
"Message search initialisation failed": "Zoeken in berichten opstarten is mislukt",
"Spaces are a beta feature.": "Spaces zijn een beta functie.",
"Search names and descriptions": "Namen en beschrijvingen zoeken",
"You may contact me if you have any follow up questions": "U mag contact met mij opnemen als u nog vervolg vragen heeft",
"To leave the beta, visit your settings.": "Om de beta te verlaten, ga naar uw instellingen.",
- "Your platform and username will be noted to help us use your feedback as much as we can.": "Uw platform en gebruikersnaam zullen worden opgeslagen om onze te helpen uw feedback zo goed mogelijk te gebruiken.",
+ "Your platform and username will be noted to help us use your feedback as much as we can.": "Uw platform en inlognaam zullen worden opgeslagen om onze te helpen uw feedback zo goed mogelijk te gebruiken.",
"%(featureName)s beta feedback": "%(featureName)s beta feedback",
"Thank you for your feedback, we really appreciate it.": "Bedankt voor uw feedback, we waarderen het enorm.",
"Beta feedback": "Beta feedback",
@@ -3263,17 +3263,17 @@
"See when people join, leave, or are invited to this room": "Zie wanneer personen deelnemen, vertrekken of worden uitgenodigd voor deze kamer",
"Kick, ban, or invite people to this room, and make you leave": "Verwijder, verban of verwijder personen uit deze kamer en uzelf laten vertrekken",
"Currently joining %(count)s rooms|one": "Momenteel aan het toetreden tot %(count)s gesprek",
- "Currently joining %(count)s rooms|other": "Momenteel aan het toetreden tot %(count)s gesprekken",
+ "Currently joining %(count)s rooms|other": "Momenteel aan het toetreden tot %(count)s kamers",
"Try different words or check for typos. Some results may not be visible as they're private and you need an invite to join them.": "Probeer andere woorden of controleer op typefouten. Sommige resultaten zijn mogelijk niet zichtbaar omdat ze privé zijn of u een uitnodiging nodig heeft om deel te nemen.",
"No results for \"%(query)s\"": "Geen resultaten voor \"%(query)s\"",
- "The user you called is busy.": "De gebruiker die u belde is bezet.",
- "User Busy": "Gebruiker Bezet",
+ "The user you called is busy.": "De persoon die u belde is bezet.",
+ "User Busy": "Persoon Bezet",
"We're working on this as part of the beta, but just want to let you know.": "We werken hieraan als onderdeel van de beta, maar we willen het u gewoon laten weten.",
- "Teammates might not be able to view or join any private rooms you make.": "Teamgenoten zijn mogelijk niet in staat zijn om privégesprekken die u maakt te bekijken of er lid van te worden.",
+ "Teammates might not be able to view or join any private rooms you make.": "Teamgenoten zijn mogelijk niet in staat zijn om privékamers die u maakt te bekijken of er lid van te worden.",
"Or send invite link": "Of verstuur uw uitnodigingslink",
"If you can't see who you’re looking for, send them your invite link below.": "Als u niet kunt vinden wie u zoekt, stuur ze dan uw uitnodigingslink hieronder.",
"Some suggestions may be hidden for privacy.": "Sommige suggesties kunnen om privacyredenen verborgen zijn.",
- "Search for rooms or people": "Zoek naar gesprekken of personen",
+ "Search for rooms or people": "Zoek naar kamers of personen",
"Message preview": "Voorbeeld van bericht",
"Forward message": "Bericht doorsturen",
"Open link": "Koppeling openen",
@@ -3344,8 +3344,8 @@
"Show notification badges for People in Spaces": "Toon meldingsbadge voor personen in spaces",
"If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Indien uitgeschakeld, kunt u nog steeds directe gesprekken toevoegen aan persoonlijke spaces. Indien ingeschakeld, ziet u automatisch iedereen die lid is van de space.",
"Show people in spaces": "Toon personen in spaces",
- "Show all rooms in Home": "Alle gesprekken in Thuis tonen",
- "Report to moderators prototype. In rooms that support moderation, the `report` button will let you report abuse to room moderators": "Meld aan moderators prototype. In gesprekken die moderatie ondersteunen, kunt u met de `melden` knop misbruik melden aan de gesprekmoderators",
+ "Show all rooms in Home": "Alle kamers in Thuis tonen",
+ "Report to moderators prototype. In rooms that support moderation, the `report` button will let you report abuse to room moderators": "Meld aan moderators prototype. In kamers die moderatie ondersteunen, kunt u met de `melden` knop misbruik melden aan de kamermoderators",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s heeft de vastgeprikte berichten voor de kamer gewijzigd.",
"%(senderName)s kicked %(targetName)s": "%(senderName)s heeft %(targetName)s verwijderd",
"%(senderName)s kicked %(targetName)s: %(reason)s": "%(senderName)s heeft %(targetName)s verbannen: %(reason)s",
@@ -3381,7 +3381,7 @@
"Keyboard shortcuts": "Sneltoetsen",
"Use Ctrl + F to search timeline": "Gebruik Ctrl +F om te zoeken in de tijdlijn",
"Use Command + F to search timeline": "Gebruik Command + F om te zoeken in de tijdlijn",
- "User %(userId)s is already invited to the room": "De gebruiker %(userId)s is al uitgenodigd voor dit gesprek",
+ "User %(userId)s is already invited to the room": "De persoon %(userId)s is al uitgenodigd voor deze kamer",
"Integration manager": "Integratiebeheerder",
"Your %(brand)s doesn't allow you to use an integration manager to do this. Please contact an admin.": "Uw %(brand)s laat u geen integratiebeheerder gebruiken om dit te doen. Neem contact op met een beheerder.",
"Using this widget may share data with %(widgetDomain)s & your integration manager.": "Met het gebruik van deze widget deelt u mogelijk gegevens met %(widgetDomain)s & uw integratiebeheerder.",
@@ -3394,7 +3394,7 @@
"Could not connect to identity server": "Kon geen verbinding maken met de identiteitsserver",
"Not a valid identity server (status code %(code)s)": "Geen geldige identiteitsserver (statuscode %(code)s)",
"Identity server URL must be HTTPS": "Identiteitsserver-URL moet HTTPS zijn",
- "User Directory": "Gebruikersgids",
+ "User Directory": "Personengids",
"Copy Link": "Link kopieren",
"There was an error loading your notification settings.": "Er was een fout bij het laden van uw meldingsvoorkeuren.",
"Mentions & keywords": "Vermeldingen & trefwoorden",
@@ -3436,10 +3436,10 @@
"Only invited people can join.": "Alleen uitgenodigde personen kunnen deelnemen.",
"Private (invite only)": "Privé (alleen op uitnodiging)",
"This upgrade will allow members of selected spaces access to this room without an invite.": "Deze upgrade maakt het mogelijk voor leden van geselecteerde spaces om toegang te krijgen tot dit gesprek zonder een uitnodiging.",
- "This makes it easy for rooms to stay private to a space, while letting people in the space find and join them. All new rooms in a space will have this option available.": "Dit maakt het makkelijk om gesprekken privé te houden voor een space, terwijl personen in de space hem kunnen vinden en aan deelnemen. Alle nieuwe gesprekken in deze space hebben deze optie beschikbaar.",
- "To help space members find and join a private room, go to that room's Security & Privacy settings.": "Om space leden te helpen met het vinden van en deel te nemen aan privégesprekken, ga naar uw gespreksinstellingen voor veiligheid & privacy.",
- "Help space members find private rooms": "Help space leden privégesprekken te vinden",
- "Help people in spaces to find and join private rooms": "Help personen in spaces om privégesprekken te vinden en aan deel te nemen",
+ "This makes it easy for rooms to stay private to a space, while letting people in the space find and join them. All new rooms in a space will have this option available.": "Dit maakt het makkelijk om kamers privé te houden voor een space, terwijl personen in de space hem kunnen vinden en aan deelnemen. Alle nieuwe kamers in deze space hebben deze optie beschikbaar.",
+ "To help space members find and join a private room, go to that room's Security & Privacy settings.": "Om space leden te helpen met het vinden van en deel te nemen aan privékamers, ga naar uw kamerinstellingen voor veiligheid & privacy.",
+ "Help space members find private rooms": "Help space leden privékamers te vinden",
+ "Help people in spaces to find and join private rooms": "Help personen in spaces om privékamers te vinden en aan deel te nemen",
"New in the Spaces beta": "Nieuw in de spaces beta",
"Everyone in will be able to find and join this room.": "Iedereen in kan dit gesprek vinden en aan deelnemen.",
"Image": "Afbeelding",
@@ -3450,7 +3450,7 @@
"You declined this call": "U heeft deze oproep geweigerd",
"The voice message failed to upload.": "Het spraakbericht versturen is mislukt.",
"Access": "Toegang",
- "People with supported clients will be able to join the room without having a registered account.": "Personen met geschikte apps zullen aan de gesprekken kunnen deelnemen zonder een account te hebben.",
+ "People with supported clients will be able to join the room without having a registered account.": "Personen met geschikte apps zullen aan de kamer kunnen deelnemen zonder een account te hebben.",
"Decide who can join %(roomName)s.": "Kies wie kan deelnemen aan %(roomName)s.",
"Space members": "Space leden",
"Anyone in a space can find and join. You can select multiple spaces.": "Iedereen in een space kan zoeken en deelnemen. U kunt meerdere spaces selecteren.",
@@ -3465,8 +3465,8 @@
"Error downloading audio": "Fout bij downloaden van audio",
"Please note upgrading will make a new version of the room. All current messages will stay in this archived room.": "Let op bijwerken maakt een nieuwe versie van dit gesprek. Alle huidige berichten blijven in dit gearchiveerde gesprek.",
"Automatically invite members from this room to the new one": "Automatisch leden uitnodigen van dit gesprek in de nieuwe",
- "These are likely ones other room admins are a part of.": "Er zijn waarschijnlijk gesprekken waar andere gespreksbeheerders deel van uitmaken.",
- "Other spaces or rooms you might not know": "Andere spaces of gesprekken die u misschien niet kent",
+ "These are likely ones other room admins are a part of.": "Dit zijn waarschijnlijk kamers waar andere kamerbeheerders deel van uitmaken.",
+ "Other spaces or rooms you might not know": "Andere spaces of kamers die u misschien niet kent",
"Spaces you know that contain this room": "Spaces die u kent met dit gesprek",
"Search spaces": "Spaces zoeken",
"Decide which spaces can access this room. If a space is selected, its members can find and join .": "Kies welke spaces toegang hebben tot dit gesprek. Als een space is geselecteerd kunnen deze leden vinden en aan deelnemen.",
@@ -3544,5 +3544,22 @@
"You can change this later.": "U kan dit later aanpassen.",
"What kind of Space do you want to create?": "Wat voor soort Space wilt u maken?",
"Delete avatar": "Afbeelding verwijderen",
- "Don't send read receipts": "Geen leesbevestigingen versturen"
+ "Don't send read receipts": "Geen leesbevestigingen versturen",
+ "Created from ": "Gemaakt van ",
+ "Communities won't receive further updates.": "Gemeenschappen zullen geen updates meer krijgen.",
+ "Spaces are a new way to make a community, with new features coming.": "Spaces zijn de nieuwe gemeenschappen, met binnenkort meer nieuwe functies.",
+ "Communities can now be made into Spaces": "Gemeenschappen kunnen nu omgezet worden in Spaces",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Vraag een beheerder van deze gemeenschap om hem om te zetten in een Space en kijk uit naar de uitnodiging.",
+ "You can create a Space from this community here.": "U kunt hier een Space maken van uw gemeenschap.",
+ "This description will be shown to people when they view your space": "Deze omschrijving zal getoond worden aan personen die uw space bekijken",
+ "Flair won't be available in Spaces for the foreseeable future.": "Badges zijn niet beschikbaar in Spaces in de nabije toekomst.",
+ "All rooms will be added and all community members will be invited.": "Alle kamers zullen worden toegevoegd en alle gemeenschapsleden zullen worden uitgenodigd.",
+ "A link to the Space will be put in your community description.": "Een link naar deze Space zal geplaatst worden in de gemeenschapsomschrijving.",
+ "Create Space from community": "Space van gemeenschap maken",
+ "Failed to migrate community": "Omzetten van de gemeenschap is mislukt",
+ "To create a Space from another community, just pick the community in Preferences.": "Om een Space te maken van een gemeenschap kiest u de gemeenschap in Instellingen.",
+ " has been made and everyone who was a part of the community has been invited to it.": " is gemaakt en iedereen die lid was van de gemeenschap is ervoor uitgenodigd.",
+ "Space created": "Space aangemaakt",
+ "To view Spaces, hide communities in Preferences": "Om Spaces te zien, verberg gemeenschappen in uw Instellingen",
+ "This community has been upgraded into a Space": "Deze gemeenschap is geupgrade naar een Space"
}
From 1f406d646e3d0fd27d96607a4fd7eec00e3fb352 Mon Sep 17 00:00:00 2001
From: Tirifto
Date: Thu, 12 Aug 2021 14:01:07 +0000
Subject: [PATCH 088/619] Translated using Weblate (Esperanto)
Currently translated at 93.3% (2931 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 44 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 43 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index c97adeb05f..e86b58dbab 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -3363,5 +3363,47 @@
"Some invites couldn't be sent": "Ne povis sendi iujn invitojn",
"We sent the others, but the below people couldn't be invited to ": "Ni sendis la aliajn, sed la ĉi-subaj personoj ne povis ricevi inviton al ",
"Transfer Failed": "Malsukcesis transdono",
- "Unable to transfer call": "Ne povas transdoni vokon"
+ "Unable to transfer call": "Ne povas transdoni vokon",
+ "Preview Space": "Antaŭrigardi aron",
+ "only invited people can view and join": "nur invititoj povas rigardi kaj aliĝi",
+ "anyone with the link can view and join": "ĉiu kun ligilo povas rigardi kaj aliĝi",
+ "Decide who can view and join %(spaceName)s.": "Decidu, kiu povas rigardi kaj aliĝi aron %(spaceName)s.",
+ "Visibility": "Videbleco",
+ "This may be useful for public spaces.": "Tio povas esti utila por publikaj aroj.",
+ "Guests can join a space without having an account.": "Gastoj povas aliĝi al aro sen konto.",
+ "Enable guest access": "Ŝalti aliron de gastoj",
+ "Failed to update the history visibility of this space": "Malsukcesis ĝisdatigi videblecon de historio de ĉi tiu aro",
+ "Failed to update the guest access of this space": "Malsukcesis ĝisdatigi aliron de gastoj al ĉi tiu aro",
+ "Failed to update the visibility of this space": "Malsukcesis ĝisdatigi la videblecon de ĉi tiu aro",
+ "Show all rooms": "Montri ĉiujn ĉambrojn",
+ "Address": "Adreso",
+ "e.g. my-space": "ekz. mia-aro",
+ "Give feedback.": "Prikomentu.",
+ "Thank you for trying Spaces. Your feedback will help inform the next versions.": "Dankon ĉar vi provas arojn. Viaj prikomentoj helpos al ni evoluigi la venontajn versiojn.",
+ "Spaces feedback": "Prikomentoj pri aroj",
+ "Spaces are a new feature.": "Aroj estas nova funkcio.",
+ "Delete avatar": "Forigi profilbildon",
+ "Mute the microphone": "Silentigi la mikrofonon",
+ "Unmute the microphone": "Malsilentigi la mikrofonon",
+ "Dialpad": "Ciferplato",
+ "More": "Pli",
+ "Show sidebar": "Montri flankan breton",
+ "Hide sidebar": "Kaŝi flankan breton",
+ "Start sharing your screen": "Ŝalti ekranvidadon",
+ "Stop sharing your screen": "Malŝalti ekranvidadon",
+ "Stop the camera": "Malŝalti la filmilon",
+ "Start the camera": "Ŝalti la filmilon",
+ "Your camera is still enabled": "Via filmilo ankoraŭ estas ŝaltita",
+ "Your camera is turned off": "Via filmilo estas malŝaltita",
+ "%(sharerName)s is presenting": "%(sharerName)s prezentas",
+ "You are presenting": "Vi prezentas",
+ "Surround selected text when typing special characters": "Ĉirkaŭi elektitan tekston dum tajpado de specialaj signoj",
+ "Don't send read receipts": "Ne sendi legokonfirmojn",
+ "New layout switcher (with message bubbles)": "Nova baskulo de aranĝo (kun mesaĝaj vezikoj)",
+ "Report to moderators prototype. In rooms that support moderation, the `report` button will let you report abuse to room moderators": "Pratipo de raportado al reguligistoj. En ĉambroj, kiuj subtenas reguligadon, la butono «raporti» povigos vin raporti misuzon al reguligistoj de ĉambro",
+ "This makes it easy for rooms to stay private to a space, while letting people in the space find and join them. All new rooms in a space will have this option available.": "Tio faciligas, ke ĉambroj restu privataj por aro, sed ebligas serĉadon kaj aliĝadon al personoj en tiu sama aro. Ĉiuj novaj ĉambroj en aro havos tiun ĉi elekteblon.",
+ "To help space members find and join a private room, go to that room's Security & Privacy settings.": "Por helpi al aranoj trovi kaj aliĝi privatan ĉambron, iru al la agordoj de Sekureco kaj Privateco de tiu ĉambro.",
+ "Help space members find private rooms": "Helpu aranojn trovi privatajn ĉambrojn",
+ "Help people in spaces to find and join private rooms": "Helpu al personoj en aroj trovi kaj aliĝi privatajn ĉambrojn",
+ "New in the Spaces beta": "Nove en beta-versio de aroj"
}
From d465d6c9c669097c5b30e5816f95ee1573fef25c Mon Sep 17 00:00:00 2001
From: waclaw66
Date: Thu, 12 Aug 2021 14:29:55 +0000
Subject: [PATCH 089/619] Translated using Weblate (Czech)
Currently translated at 100.0% (3141 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/cs/
---
src/i18n/strings/cs.json | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json
index eb9f36c9a8..c09493fa23 100644
--- a/src/i18n/strings/cs.json
+++ b/src/i18n/strings/cs.json
@@ -3565,5 +3565,31 @@
"%(severalUsers)schanged the pinned messages for the room %(count)s times.|other": "%(severalUsers)s%(count)s krát změnili připnuté zprávy místnosti.",
"Olm version:": "Verze Olm:",
"Don't send read receipts": "Neposílat potvrzení o přečtení",
- "Delete avatar": "Smazat avatar"
+ "Delete avatar": "Smazat avatar",
+ "Created from ": "Vytvořeno z ",
+ "Communities won't receive further updates.": "Skupiny nebudou dostávat další aktualizace.",
+ "Spaces are a new way to make a community, with new features coming.": "Prostory jsou novým způsobem vytváření komunit a přibývají nové funkce.",
+ "Communities can now be made into Spaces": "Ze skupin lze nyní vytvořit prostory",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Požádejte správce této skupiny, aby z ní udělali prostor a počkejte na pozvánku.",
+ "You can create a Space from this community here.": "Zde můžete vytvořit prostor z této skupiny.",
+ "This description will be shown to people when they view your space": "Tento popis se zobrazí lidem při prohlížení vašeho prostoru",
+ "Flair won't be available in Spaces for the foreseeable future.": "Symbol příslušnosti ke skupině nebude v dohledné době dostupný ve Spaces.",
+ "All rooms will be added and all community members will be invited.": "Všechny místnosti budou přidány a všichni členové skupiny budou pozváni.",
+ "To create a Space from another community, just pick the community in Preferences.": "Chcete-li vytvořit prostor z jiné skupiny, vyberte ji v Předvolbách.",
+ "Show my Communities": "Zobrazit moje Skupiny",
+ "A link to the Space will be put in your community description.": "Odkaz na prostor bude vložen do popisu vaší skupiny.",
+ "Create Space from community": "Vytvořit prostor ze skupiny",
+ "Failed to migrate community": "Nepodařilo se převést skupinu",
+ " has been made and everyone who was a part of the community has been invited to it.": " byl vytvořen a všichni, kteří byli součástí skupiny, do něj byli pozváni.",
+ "Space created": "Prostor byl vytvořen",
+ "To view Spaces, hide communities in Preferences": "Chcete-li zobrazit Prostory, skryjte skupiny v Předvolbách",
+ "This community has been upgraded into a Space": "Tato skupina byla převedena na prostor",
+ "If a community isn't shown you may not have permission to convert it.": "Pokud skupina není zobrazena, nemusíte mít povolení k její konverzi.",
+ "You can also create a Space from a community.": "Prostor můžete vytvořit také ze skupiny.",
+ "Communities have been archived to make way for Spaces but you can convert your communities into Spaces below. Converting will ensure your conversations get the latest features.": "Skupiny byly archivovány, aby uvolnily místo pro Prostory, ale níže můžete své skupiny převést na prostory. Převedení zajistí, že vaše konverzace budou mít nejnovější funkce.",
+ "Create Space": "Vytvořit prostor",
+ "What kind of Space do you want to create?": "Jaký druh prostoru chcete vytvořit?",
+ "Open Space": "Otevřít prostor",
+ "To join an existing space you'll need an invite.": "Chcete-li se připojit k existujícímu prostoru, potřebujete pozvánku.",
+ "You can change this later.": "Toto můžete změnit později."
}
From 300a1b12e72f959593872293ac754f737284bbb6 Mon Sep 17 00:00:00 2001
From: Besnik Bleta
Date: Thu, 12 Aug 2021 11:23:34 +0000
Subject: [PATCH 090/619] Translated using Weblate (Albanian)
Currently translated at 99.7% (3132 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/sq/
---
src/i18n/strings/sq.json | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json
index 97fdc998dc..44462fadfb 100644
--- a/src/i18n/strings/sq.json
+++ b/src/i18n/strings/sq.json
@@ -3633,5 +3633,32 @@
"Stop sharing your screen": "Reshtni dhënien e ekranit tuaj",
"Stop the camera": "Ndale kamerën",
"Start the camera": "Nise kamerën",
- "Surround selected text when typing special characters": "Rrethoje tekstin e përzgjedhur, kur shtypen shenja speciale"
+ "Surround selected text when typing special characters": "Rrethoje tekstin e përzgjedhur, kur shtypen shenja speciale",
+ "Created from ": "Krijuar prej ",
+ "Communities won't receive further updates.": "Për bashkësitë s’do të ketë përditësime të mëtejshme.",
+ "Spaces are a new way to make a community, with new features coming.": "Hapësirat janë një rrugë e re për të krijuar një bashkësi, me veçori të reja së afërmi.",
+ "Communities can now be made into Spaces": "Tanimë bashkësitë mund të shndërrohen në Hapësira",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Kërkojini përgjegjësve të kësaj bashkësie ta shndërrojnë në një Hapësirë dhe hapni sytë për ftesën.",
+ "You can create a Space from this community here.": "Këtu mund të krijoni një Hapësirë prej kësaj bashkësie.",
+ "This description will be shown to people when they view your space": "Ky përshkrim do t’u tregohet personave kur shohin hapësirën tuaj",
+ "All rooms will be added and all community members will be invited.": "Do të shtohen krejt dhomat dhe do të ftohen krejt anëtarët e bashkësisë.",
+ "A link to the Space will be put in your community description.": "Një lidhje për te Hapësira do të vendoset te përshkrimi i bashkësisë tuaj.",
+ "Create Space from community": "Krijo Hapësirë prej bashkësie",
+ "Failed to migrate community": "S’u arrit të migrohej bashkësia",
+ "To create a Space from another community, just pick the community in Preferences.": "Që të krijoni një Hapësirë prej një bashkësie tjetër, thjesht zgjidhni bashkësinë te Parapëlqimet.",
+ " has been made and everyone who was a part of the community has been invited to it.": " është krijuar dhe cilido që qe pjesë e bashkësisë është ftuar në të.",
+ "Space created": "Hapësira u krijua",
+ "To view Spaces, hide communities in Preferences": "Që të shihni Hapësira, fshini bashkësitë te Parapëlqime",
+ "This community has been upgraded into a Space": "Kjo bashkësi është përmirësuar në një Hapësirë",
+ "If a community isn't shown you may not have permission to convert it.": "Nëse një bashkësi s’është shfaqur, mund të mos keni leje për ta shndërruar atë.",
+ "Show my Communities": "Shfaqi Bashkësitë e mia",
+ "Communities have been archived to make way for Spaces but you can convert your communities into Spaces below. Converting will ensure your conversations get the latest features.": "Bashkësitë janë arkivuar, për t’ua lënë vendin Hapësirave, por mundeni, më poshtë, të shndërroni bashkësitë tuaja në Hapësira. Shndërrimi do të garantojë që bisedat tuaja të marrin veçoritë më të reja.",
+ "Create Space": "Krijo Hapësirë",
+ "Open Space": "Hap Hapësirë",
+ "To join an existing space you'll need an invite.": "Që të hyni në një hapësirë ekzistuese, ju duhet një ftesë.",
+ "You can also create a Space from a community.": "Mundeni të krijoni një Hapësirë edhe prej një bashkësie.",
+ "You can change this later.": "Këtë mund ta ndryshoni më vonë.",
+ "What kind of Space do you want to create?": "Ç’lloj Hapësire doni të krijoni?",
+ "Delete avatar": "Fshije avatarin",
+ "Don't send read receipts": "Mos dërgo dëftesa leximi"
}
From 5c808eaba00ccaf35bfb83ed79c1f46360a8b34a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?=
Date: Thu, 12 Aug 2021 11:54:32 +0000
Subject: [PATCH 091/619] Translated using Weblate (Estonian)
Currently translated at 97.9% (3078 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/et/
---
src/i18n/strings/et.json | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json
index c76fdbe727..17e6e87936 100644
--- a/src/i18n/strings/et.json
+++ b/src/i18n/strings/et.json
@@ -3579,5 +3579,11 @@
"More": "Veel",
"Dialpad": "Numbriklahvistik",
"Unmute the microphone": "Eemalda mikrofoni summutamine",
- "Mute the microphone": "Summuta mikrofon"
+ "Mute the microphone": "Summuta mikrofon",
+ "You can create a Space from this community here.": "Sellest vana tüüpi kogukonnast saad luua uue kogukonnakeskuse siin.",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Palu et haldaja muudaks vana kogukonna uueks kogukonnakeskuseks ja oota liitumiskutset.",
+ "Communities can now be made into Spaces": "Vanad kogukonnad saab nüüd muuta uuteks kogukonnakeskusteks",
+ "Spaces are a new way to make a community, with new features coming.": "Kogukonnakeskused on nüüd uus ja pidevalt täienev lahendus seniste kogukondade jaoks.",
+ "Communities won't receive further updates.": "Kogukondade vana funktsionaalsus enam ei uuene.",
+ "Created from ": "Loodud kogukonnas: "
}
From 2afee596a9ed021508ac539a1c1a16fee6ebe9d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:10:47 +0200
Subject: [PATCH 092/619] $primary-bg-color -> $background
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/_common.scss | 8 ++++----
res/css/structures/_GroupFilterPanel.scss | 2 +-
res/css/structures/_MatrixChat.scss | 2 +-
res/css/structures/_NotificationPanel.scss | 2 +-
res/css/structures/_RightPanel.scss | 2 +-
res/css/structures/_RoomStatusBar.scss | 4 ++--
res/css/structures/_RoomView.scss | 8 ++++----
res/css/structures/_SpaceRoomDirectory.scss | 2 +-
res/css/views/auth/_AuthButtons.scss | 2 +-
.../views/context_menus/_StatusMessageContextMenu.scss | 2 +-
res/css/views/dialogs/_ConfirmUserActionDialog.scss | 2 +-
res/css/views/dialogs/_CreateGroupDialog.scss | 2 +-
res/css/views/dialogs/_CreateRoomDialog.scss | 2 +-
res/css/views/dialogs/_SetEmailDialog.scss | 2 +-
res/css/views/directory/_NetworkDropdown.scss | 2 +-
res/css/views/elements/_AddressSelector.scss | 6 +++---
res/css/views/elements/_Dropdown.scss | 2 +-
res/css/views/elements/_FacePile.scss | 2 +-
res/css/views/elements/_Field.scss | 2 +-
res/css/views/elements/_MiniAvatarUploader.scss | 2 +-
res/css/views/emojipicker/_EmojiPicker.scss | 2 +-
res/css/views/messages/_MImageBody.scss | 2 +-
res/css/views/messages/_MessageActionBar.scss | 2 +-
res/css/views/right_panel/_PinnedMessagesCard.scss | 2 +-
res/css/views/rooms/_Autocomplete.scss | 2 +-
res/css/views/rooms/_BasicMessageComposer.scss | 2 +-
res/css/views/rooms/_EditMessageComposer.scss | 2 +-
res/css/views/rooms/_JumpToBottomButton.scss | 2 +-
res/css/views/rooms/_MessageComposer.scss | 4 ++--
res/css/views/rooms/_ReplyPreview.scss | 2 +-
res/css/views/rooms/_RoomHeader.scss | 2 +-
res/css/views/rooms/_TopUnreadMessagesBar.scss | 4 ++--
res/css/views/rooms/_WhoIsTypingTile.scss | 4 ++--
res/css/views/spaces/_SpaceCreateMenu.scss | 2 +-
res/themes/dark/css/_dark.scss | 1 -
res/themes/light-custom/css/_custom.scss | 2 +-
res/themes/light/css/_light.scss | 9 ++++-----
37 files changed, 51 insertions(+), 53 deletions(-)
diff --git a/res/css/_common.scss b/res/css/_common.scss
index fa925eba5b..7439b36218 100644
--- a/res/css/_common.scss
+++ b/res/css/_common.scss
@@ -53,7 +53,7 @@ html {
body {
font-family: $font-family;
font-size: $font-15px;
- background-color: $primary-bg-color;
+ background-color: $background;
color: $primary-fg-color;
border: 0px;
margin: 0px;
@@ -209,7 +209,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
:not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type=search],
.mx_textinput {
color: $input-darker-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
border: none;
}
}
@@ -271,7 +271,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
}
.mx_Dialog {
- background-color: $primary-bg-color;
+ background-color: $background;
color: $light-fg-color;
z-index: 4012;
font-weight: 300;
@@ -489,7 +489,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
border: 1px solid $input-border-color;
padding: 9px;
color: $primary-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
}
.mx_textButton {
diff --git a/res/css/structures/_GroupFilterPanel.scss b/res/css/structures/_GroupFilterPanel.scss
index 444435dd57..6ff4fb5c3e 100644
--- a/res/css/structures/_GroupFilterPanel.scss
+++ b/res/css/structures/_GroupFilterPanel.scss
@@ -75,7 +75,7 @@ limitations under the License.
}
.mx_GroupFilterPanel .mx_TagTile.mx_TagTile_selected_prototype {
- background-color: $primary-bg-color;
+ background-color: $background;
border-radius: 6px;
}
diff --git a/res/css/structures/_MatrixChat.scss b/res/css/structures/_MatrixChat.scss
index a220c5d505..b660a6446c 100644
--- a/res/css/structures/_MatrixChat.scss
+++ b/res/css/structures/_MatrixChat.scss
@@ -67,7 +67,7 @@ limitations under the License.
/* not the left panel, and not the resize handle, so the roomview/groupview/... */
.mx_MatrixChat > :not(.mx_LeftPanel):not(.mx_SpacePanel):not(.mx_ResizeHandle) {
- background-color: $primary-bg-color;
+ background-color: $background;
flex: 1 1 0;
min-width: 0;
diff --git a/res/css/structures/_NotificationPanel.scss b/res/css/structures/_NotificationPanel.scss
index d271cd2bcc..be2cbaef1d 100644
--- a/res/css/structures/_NotificationPanel.scss
+++ b/res/css/structures/_NotificationPanel.scss
@@ -118,7 +118,7 @@ limitations under the License.
}
.mx_NotificationPanel .mx_EventTile:hover .mx_EventTile_line {
- background-color: $primary-bg-color;
+ background-color: $background;
}
.mx_NotificationPanel .mx_EventTile_content {
diff --git a/res/css/structures/_RightPanel.scss b/res/css/structures/_RightPanel.scss
index 3222fe936c..5316cba61d 100644
--- a/res/css/structures/_RightPanel.scss
+++ b/res/css/structures/_RightPanel.scss
@@ -43,7 +43,7 @@ limitations under the License.
.mx_RightPanel_headerButtonGroup {
height: 100%;
display: flex;
- background-color: $primary-bg-color;
+ background-color: $background;
padding: 0 9px;
align-items: center;
}
diff --git a/res/css/structures/_RoomStatusBar.scss b/res/css/structures/_RoomStatusBar.scss
index de9e049165..89cb8c0ba3 100644
--- a/res/css/structures/_RoomStatusBar.scss
+++ b/res/css/structures/_RoomStatusBar.scss
@@ -27,7 +27,7 @@ limitations under the License.
.mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar_image {
margin-right: -12px;
- border: 1px solid $primary-bg-color;
+ border: 1px solid $background;
}
.mx_RoomStatusBar_typingIndicatorAvatars .mx_BaseAvatar_initial {
@@ -39,7 +39,7 @@ limitations under the License.
display: inline-block;
color: #acacac;
background-color: #ddd;
- border: 1px solid $primary-bg-color;
+ border: 1px solid $background;
border-radius: 40px;
width: 24px;
height: 24px;
diff --git a/res/css/structures/_RoomView.scss b/res/css/structures/_RoomView.scss
index 831f186ed4..cc61b65d96 100644
--- a/res/css/structures/_RoomView.scss
+++ b/res/css/structures/_RoomView.scss
@@ -40,7 +40,7 @@ limitations under the License.
pointer-events: none;
- background-color: $primary-bg-color;
+ background-color: $background;
opacity: 0.95;
position: absolute;
@@ -87,7 +87,7 @@ limitations under the License.
left: 0;
right: 0;
z-index: 3000;
- background-color: $primary-bg-color;
+ background-color: $background;
}
.mx_RoomView_auxPanel_hiddenHighlights {
@@ -161,7 +161,7 @@ limitations under the License.
flex: 0 0 auto;
max-height: 0px;
- background-color: $primary-bg-color;
+ background-color: $background;
z-index: 1000;
overflow: hidden;
@@ -246,7 +246,7 @@ hr.mx_RoomView_myReadMarker {
}
.mx_RoomView_callStatusBar .mx_UploadBar_uploadProgressInner {
- background-color: $primary-bg-color;
+ background-color: $background;
}
.mx_RoomView_callStatusBar .mx_UploadBar_uploadFilename {
diff --git a/res/css/structures/_SpaceRoomDirectory.scss b/res/css/structures/_SpaceRoomDirectory.scss
index 88e6a3f494..d251e48947 100644
--- a/res/css/structures/_SpaceRoomDirectory.scss
+++ b/res/css/structures/_SpaceRoomDirectory.scss
@@ -160,7 +160,7 @@ limitations under the License.
height: 16px;
width: 16px;
border-radius: 4px;
- background-color: $primary-bg-color;
+ background-color: $background;
&::before {
content: '';
diff --git a/res/css/views/auth/_AuthButtons.scss b/res/css/views/auth/_AuthButtons.scss
index 8deb0f80ac..3a2ad2adf8 100644
--- a/res/css/views/auth/_AuthButtons.scss
+++ b/res/css/views/auth/_AuthButtons.scss
@@ -39,7 +39,7 @@ limitations under the License.
min-width: 80px;
background-color: $accent-color;
- color: $primary-bg-color;
+ color: $background;
cursor: pointer;
diff --git a/res/css/views/context_menus/_StatusMessageContextMenu.scss b/res/css/views/context_menus/_StatusMessageContextMenu.scss
index fceb7fba34..1a97fb56c7 100644
--- a/res/css/views/context_menus/_StatusMessageContextMenu.scss
+++ b/res/css/views/context_menus/_StatusMessageContextMenu.scss
@@ -27,7 +27,7 @@ input.mx_StatusMessageContextMenu_message {
border-radius: 4px;
border: 1px solid $input-border-color;
padding: 6.5px 11px;
- background-color: $primary-bg-color;
+ background-color: $background;
font-weight: normal;
margin: 0 0 10px;
}
diff --git a/res/css/views/dialogs/_ConfirmUserActionDialog.scss b/res/css/views/dialogs/_ConfirmUserActionDialog.scss
index 284c171f4e..c390398020 100644
--- a/res/css/views/dialogs/_ConfirmUserActionDialog.scss
+++ b/res/css/views/dialogs/_ConfirmUserActionDialog.scss
@@ -36,7 +36,7 @@ limitations under the License.
.mx_ConfirmUserActionDialog_reasonField {
font-size: $font-14px;
color: $primary-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
border-radius: 3px;
border: solid 1px $input-border-color;
diff --git a/res/css/views/dialogs/_CreateGroupDialog.scss b/res/css/views/dialogs/_CreateGroupDialog.scss
index f7bfc61a98..58045e1d7f 100644
--- a/res/css/views/dialogs/_CreateGroupDialog.scss
+++ b/res/css/views/dialogs/_CreateGroupDialog.scss
@@ -30,7 +30,7 @@ limitations under the License.
border: 1px solid $input-border-color;
padding: 9px;
color: $primary-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
}
.mx_CreateGroupDialog_input_hasPrefixAndSuffix {
diff --git a/res/css/views/dialogs/_CreateRoomDialog.scss b/res/css/views/dialogs/_CreateRoomDialog.scss
index e7cfbf6050..818c93073a 100644
--- a/res/css/views/dialogs/_CreateRoomDialog.scss
+++ b/res/css/views/dialogs/_CreateRoomDialog.scss
@@ -56,7 +56,7 @@ limitations under the License.
border: 1px solid $input-border-color;
padding: 9px;
color: $primary-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
width: 100%;
}
diff --git a/res/css/views/dialogs/_SetEmailDialog.scss b/res/css/views/dialogs/_SetEmailDialog.scss
index 37bee7a9ff..a39d51dfce 100644
--- a/res/css/views/dialogs/_SetEmailDialog.scss
+++ b/res/css/views/dialogs/_SetEmailDialog.scss
@@ -19,7 +19,7 @@ limitations under the License.
border: 1px solid $input-border-color;
padding: 9px;
color: $input-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
font-size: $font-15px;
width: 100%;
max-width: 280px;
diff --git a/res/css/views/directory/_NetworkDropdown.scss b/res/css/views/directory/_NetworkDropdown.scss
index ae0927386a..eb24cb0107 100644
--- a/res/css/views/directory/_NetworkDropdown.scss
+++ b/res/css/views/directory/_NetworkDropdown.scss
@@ -34,7 +34,7 @@ limitations under the License.
box-sizing: border-box;
border-radius: 4px;
border: 1px solid $dialog-close-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
max-height: calc(100vh - 20px); // allow 10px padding on both top and bottom
overflow-y: auto;
}
diff --git a/res/css/views/elements/_AddressSelector.scss b/res/css/views/elements/_AddressSelector.scss
index 087504390c..a7d463353b 100644
--- a/res/css/views/elements/_AddressSelector.scss
+++ b/res/css/views/elements/_AddressSelector.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_AddressSelector {
position: absolute;
- background-color: $primary-bg-color;
+ background-color: $background;
width: 485px;
max-height: 116px;
overflow-y: auto;
@@ -31,8 +31,8 @@ limitations under the License.
}
.mx_AddressSelector_addressListElement .mx_AddressTile {
- background-color: $primary-bg-color;
- border: solid 1px $primary-bg-color;
+ background-color: $background;
+ border: solid 1px $background;
}
.mx_AddressSelector_addressListElement.mx_AddressSelector_selected {
diff --git a/res/css/views/elements/_Dropdown.scss b/res/css/views/elements/_Dropdown.scss
index 3b67e0191e..1844f2ccd3 100644
--- a/res/css/views/elements/_Dropdown.scss
+++ b/res/css/views/elements/_Dropdown.scss
@@ -111,7 +111,7 @@ input.mx_Dropdown_option:focus {
padding: 0px;
border-radius: 4px;
border: 1px solid $input-focused-border-color;
- background-color: $primary-bg-color;
+ background-color: $background;
max-height: 200px;
overflow-y: auto;
}
diff --git a/res/css/views/elements/_FacePile.scss b/res/css/views/elements/_FacePile.scss
index c691baffb5..5f6f473081 100644
--- a/res/css/views/elements/_FacePile.scss
+++ b/res/css/views/elements/_FacePile.scss
@@ -25,7 +25,7 @@ limitations under the License.
}
.mx_BaseAvatar_image {
- border: 1px solid $primary-bg-color;
+ border: 1px solid $background;
}
.mx_BaseAvatar_initial {
diff --git a/res/css/views/elements/_Field.scss b/res/css/views/elements/_Field.scss
index 50cd14c4da..afd5eeacdc 100644
--- a/res/css/views/elements/_Field.scss
+++ b/res/css/views/elements/_Field.scss
@@ -47,7 +47,7 @@ limitations under the License.
border-radius: 4px;
padding: 8px 9px;
color: $primary-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
flex: 1;
min-width: 0;
}
diff --git a/res/css/views/elements/_MiniAvatarUploader.scss b/res/css/views/elements/_MiniAvatarUploader.scss
index df4676ab56..7ba86de16f 100644
--- a/res/css/views/elements/_MiniAvatarUploader.scss
+++ b/res/css/views/elements/_MiniAvatarUploader.scss
@@ -37,7 +37,7 @@ limitations under the License.
right: -6px;
bottom: -6px;
- background-color: $primary-bg-color;
+ background-color: $background;
border-radius: 50%;
z-index: 1;
diff --git a/res/css/views/emojipicker/_EmojiPicker.scss b/res/css/views/emojipicker/_EmojiPicker.scss
index 400e40e233..05a21b933a 100644
--- a/res/css/views/emojipicker/_EmojiPicker.scss
+++ b/res/css/views/emojipicker/_EmojiPicker.scss
@@ -89,7 +89,7 @@ limitations under the License.
margin: 8px;
border-radius: 4px;
border: 1px solid $input-border-color;
- background-color: $primary-bg-color;
+ background-color: $background;
display: flex;
input {
diff --git a/res/css/views/messages/_MImageBody.scss b/res/css/views/messages/_MImageBody.scss
index 765c74a36d..ab7ab14772 100644
--- a/res/css/views/messages/_MImageBody.scss
+++ b/res/css/views/messages/_MImageBody.scss
@@ -96,5 +96,5 @@ $timelineImageBorderRadius: 4px;
}
.mx_EventTile:hover .mx_HiddenImagePlaceholder {
- background-color: $primary-bg-color;
+ background-color: $background;
}
diff --git a/res/css/views/messages/_MessageActionBar.scss b/res/css/views/messages/_MessageActionBar.scss
index 69f3c672b7..ba2f320729 100644
--- a/res/css/views/messages/_MessageActionBar.scss
+++ b/res/css/views/messages/_MessageActionBar.scss
@@ -23,7 +23,7 @@ limitations under the License.
height: 32px;
line-height: $font-24px;
border-radius: 8px;
- background: $primary-bg-color;
+ background: $background;
border: 1px solid $input-border-color;
top: -32px;
right: 8px;
diff --git a/res/css/views/right_panel/_PinnedMessagesCard.scss b/res/css/views/right_panel/_PinnedMessagesCard.scss
index 785aee09ca..933f7f0d2c 100644
--- a/res/css/views/right_panel/_PinnedMessagesCard.scss
+++ b/res/css/views/right_panel/_PinnedMessagesCard.scss
@@ -48,7 +48,7 @@ limitations under the License.
height: 32px;
line-height: $font-24px;
border-radius: 8px;
- background: $primary-bg-color;
+ background: $background;
border: 1px solid $input-border-color;
padding: 1px;
width: max-content;
diff --git a/res/css/views/rooms/_Autocomplete.scss b/res/css/views/rooms/_Autocomplete.scss
index f8e0a382b1..5a9ec4362b 100644
--- a/res/css/views/rooms/_Autocomplete.scss
+++ b/res/css/views/rooms/_Autocomplete.scss
@@ -4,7 +4,7 @@
z-index: 1001;
width: 100%;
border: 1px solid $primary-hairline-color;
- background: $primary-bg-color;
+ background: $background;
border-bottom: none;
border-radius: 8px 8px 0 0;
max-height: 50vh;
diff --git a/res/css/views/rooms/_BasicMessageComposer.scss b/res/css/views/rooms/_BasicMessageComposer.scss
index 544a96daba..752d3b0a54 100644
--- a/res/css/views/rooms/_BasicMessageComposer.scss
+++ b/res/css/views/rooms/_BasicMessageComposer.scss
@@ -31,7 +31,7 @@ limitations under the License.
@keyframes visualbell {
from { background-color: $visual-bell-bg-color; }
- to { background-color: $primary-bg-color; }
+ to { background-color: $background; }
}
&.mx_BasicMessageComposer_input_error {
diff --git a/res/css/views/rooms/_EditMessageComposer.scss b/res/css/views/rooms/_EditMessageComposer.scss
index 214bfc4a1a..bf3c7c9b42 100644
--- a/res/css/views/rooms/_EditMessageComposer.scss
+++ b/res/css/views/rooms/_EditMessageComposer.scss
@@ -28,7 +28,7 @@ limitations under the License.
.mx_BasicMessageComposer_input {
border-radius: 4px;
border: solid 1px $primary-hairline-color;
- background-color: $primary-bg-color;
+ background-color: $background;
max-height: 200px;
padding: 3px 6px;
diff --git a/res/css/views/rooms/_JumpToBottomButton.scss b/res/css/views/rooms/_JumpToBottomButton.scss
index a8dc2ce11c..2b38b509de 100644
--- a/res/css/views/rooms/_JumpToBottomButton.scss
+++ b/res/css/views/rooms/_JumpToBottomButton.scss
@@ -56,7 +56,7 @@ limitations under the License.
height: 38px;
border-radius: 19px;
box-sizing: border-box;
- background: $primary-bg-color;
+ background: $background;
border: 1.3px solid $muted-fg-color;
cursor: pointer;
}
diff --git a/res/css/views/rooms/_MessageComposer.scss b/res/css/views/rooms/_MessageComposer.scss
index 5e2eff4047..9dd04d739b 100644
--- a/res/css/views/rooms/_MessageComposer.scss
+++ b/res/css/views/rooms/_MessageComposer.scss
@@ -130,7 +130,7 @@ limitations under the License.
@keyframes visualbell {
from { background-color: $visual-bell-bg-color; }
- to { background-color: $primary-bg-color; }
+ to { background-color: $background; }
}
.mx_MessageComposer_input_error {
@@ -161,7 +161,7 @@ limitations under the License.
outline: none;
box-shadow: none;
color: $primary-fg-color;
- background-color: $primary-bg-color;
+ background-color: $background;
font-size: $font-14px;
max-height: 120px;
overflow: auto;
diff --git a/res/css/views/rooms/_ReplyPreview.scss b/res/css/views/rooms/_ReplyPreview.scss
index 60feb39d11..f6dc298563 100644
--- a/res/css/views/rooms/_ReplyPreview.scss
+++ b/res/css/views/rooms/_ReplyPreview.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_ReplyPreview {
border: 1px solid $primary-hairline-color;
- background: $primary-bg-color;
+ background: $background;
border-bottom: none;
border-radius: 8px 8px 0 0;
max-height: 50vh;
diff --git a/res/css/views/rooms/_RoomHeader.scss b/res/css/views/rooms/_RoomHeader.scss
index 4142b0a2ef..0b73dcfcf2 100644
--- a/res/css/views/rooms/_RoomHeader.scss
+++ b/res/css/views/rooms/_RoomHeader.scss
@@ -74,7 +74,7 @@ limitations under the License.
.mx_RoomHeader_buttons {
display: flex;
- background-color: $primary-bg-color;
+ background-color: $background;
}
.mx_RoomHeader_info {
diff --git a/res/css/views/rooms/_TopUnreadMessagesBar.scss b/res/css/views/rooms/_TopUnreadMessagesBar.scss
index 8841b042a0..7c7d96e713 100644
--- a/res/css/views/rooms/_TopUnreadMessagesBar.scss
+++ b/res/css/views/rooms/_TopUnreadMessagesBar.scss
@@ -41,7 +41,7 @@ limitations under the License.
height: 38px;
border-radius: 19px;
box-sizing: border-box;
- background: $primary-bg-color;
+ background: $background;
border: 1.3px solid $muted-fg-color;
cursor: pointer;
}
@@ -62,7 +62,7 @@ limitations under the License.
display: block;
width: 18px;
height: 18px;
- background: $primary-bg-color;
+ background: $background;
border: 1.3px solid $muted-fg-color;
border-radius: 10px;
margin: 5px auto;
diff --git a/res/css/views/rooms/_WhoIsTypingTile.scss b/res/css/views/rooms/_WhoIsTypingTile.scss
index 1c0dabbeb5..49655742bb 100644
--- a/res/css/views/rooms/_WhoIsTypingTile.scss
+++ b/res/css/views/rooms/_WhoIsTypingTile.scss
@@ -36,7 +36,7 @@ limitations under the License.
}
.mx_WhoIsTypingTile_avatars .mx_BaseAvatar {
- border: 1px solid $primary-bg-color;
+ border: 1px solid $background;
border-radius: 40px;
}
@@ -45,7 +45,7 @@ limitations under the License.
display: inline-block;
color: #acacac;
background-color: #ddd;
- border: 1px solid $primary-bg-color;
+ border: 1px solid $background;
border-radius: 40px;
width: 24px;
height: 24px;
diff --git a/res/css/views/spaces/_SpaceCreateMenu.scss b/res/css/views/spaces/_SpaceCreateMenu.scss
index 41536bc8b1..e4d5170924 100644
--- a/res/css/views/spaces/_SpaceCreateMenu.scss
+++ b/res/css/views/spaces/_SpaceCreateMenu.scss
@@ -28,7 +28,7 @@ $spacePanelWidth: 71px;
padding: 24px;
width: 480px;
box-sizing: border-box;
- background-color: $primary-bg-color;
+ background-color: $background;
position: relative;
> div {
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 8c305b9828..4f9b52ed8f 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -36,7 +36,6 @@ $room-highlight-color: #343a46;
// typical text (dark-on-white in light skin)
$primary-fg-color: $text-primary-color;
-$primary-bg-color: $bg-color;
$muted-fg-color: $header-panel-text-primary-color;
// additional text colors
diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss
index 6c37351414..d8530a8f59 100644
--- a/res/themes/light-custom/css/_custom.scss
+++ b/res/themes/light-custom/css/_custom.scss
@@ -38,7 +38,7 @@ $lightbox-border-color: var(--timeline-background-color);
$menu-bg-color: var(--timeline-background-color);
$avatar-bg-color: var(--timeline-background-color);
$message-action-bar-bg-color: var(--timeline-background-color);
-$primary-bg-color: var(--timeline-background-color);
+$background: var(--timeline-background-color);
$togglesw-ball-color: var(--timeline-background-color);
$droptarget-bg-color: var(--timeline-background-color-50pct); //still needs alpha at .5
$authpage-modal-bg-color: var(--timeline-background-color-50pct); //still needs alpha at .59
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index e64fe12d3b..576602c133 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -44,7 +44,6 @@ $quaternary-fg-color: $quaternary-content;
$header-panel-bg-color: #f3f8fd;
// typical text (dark-on-white in light skin)
-$primary-bg-color: $background;
$muted-fg-color: #61708b; // Commonly used in headings and relevant alt text
// used for dialog box text
@@ -59,7 +58,7 @@ $accent-color-50pct: rgba($accent-color, 0.5);
$accent-color-darker: #92caad;
$accent-color-alt: #238CF5;
-$selection-fg-color: $primary-bg-color;
+$selection-fg-color: $background;
$focus-brightness: 105%;
@@ -173,7 +172,7 @@ $rte-group-pill-color: #aaa;
$topleftmenu-color: #212121;
$roomheader-color: #45474a;
-$roomheader-bg-color: $primary-bg-color;
+$roomheader-bg-color: $background;
$roomheader-addroom-bg-color: rgba(92, 100, 112, 0.2);
$roomheader-addroom-fg-color: #5c6470;
$groupFilterPanel-button-color: #91A1C0;
@@ -318,7 +317,7 @@ $authpage-secondary-color: #61708b;
$dark-panel-bg-color: $secondary-accent-color;
$panel-gradient: rgba(242, 245, 248, 0), rgba(242, 245, 248, 1);
-$message-action-bar-bg-color: $primary-bg-color;
+$message-action-bar-bg-color: $background;
$message-action-bar-fg-color: $primary-fg-color;
$message-action-bar-border-color: #e9edf1;
$message-action-bar-hover-border-color: $focus-bg-color;
@@ -371,7 +370,7 @@ $composer-shadow-color: rgba(0, 0, 0, 0.04);
$eventbubble-self-bg: #F0FBF8;
$eventbubble-others-bg: $system;
$eventbubble-bg-hover: #FAFBFD;
-$eventbubble-avatar-outline: $primary-bg-color;
+$eventbubble-avatar-outline: $background;
$eventbubble-reply-color: $quaternary-content;
// ***** Mixins! *****
From 04bb07cdada5817dc19447f278d0d89e8e430e6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:12:10 +0200
Subject: [PATCH 093/619] $base-color -> $background
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/themes/dark/css/_dark.scss | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 4f9b52ed8f..4e06c7ae75 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -21,7 +21,6 @@ $space-nav: rgba($panel-base, 0.1);
// unified palette
// try to use these colors when possible
$bg-color: $background;
-$base-color: $bg-color;
$base-text-color: $primary-content;
$header-panel-bg-color: #20252B;
$header-panel-border-color: #000000;
@@ -60,7 +59,7 @@ $info-plinth-fg-color: #888;
$preview-bar-bg-color: $header-panel-bg-color;
$groupFilterPanel-bg-color: rgba(38, 39, 43, 0.82);
-$inverted-bg-color: $base-color;
+$inverted-bg-color: $background;
// used by AddressSelector
$selected-color: $room-highlight-color;
@@ -216,7 +215,7 @@ $kbd-border-color: #000000;
$tooltip-timeline-bg-color: $groupFilterPanel-bg-color;
$tooltip-timeline-fg-color: $primary-content;
-$interactive-tooltip-bg-color: $base-color;
+$interactive-tooltip-bg-color: $background;
$interactive-tooltip-fg-color: $primary-content;
$breadcrumb-placeholder-bg-color: #272c35;
From eea3b31993532eae2f9bdc4d5505d367ad082db7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:14:11 +0200
Subject: [PATCH 094/619] $bg-color -> $background
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/themes/dark/css/_dark.scss | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 4e06c7ae75..56adaf7513 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -20,7 +20,6 @@ $space-nav: rgba($panel-base, 0.1);
// unified palette
// try to use these colors when possible
-$bg-color: $background;
$base-text-color: $primary-content;
$header-panel-bg-color: #20252B;
$header-panel-border-color: #000000;
@@ -80,7 +79,7 @@ $input-focused-border-color: #238cf5;
$input-valid-border-color: $accent-color;
$input-invalid-border-color: $warning-color;
-$field-focused-label-bg-color: $bg-color;
+$field-focused-label-bg-color: $background;
$resend-button-divider-color: #b9bec64a; // muted-text with a 4A opacity.
@@ -91,11 +90,11 @@ $scrollbar-track-color: transparent;
// context menus
$menu-border-color: $header-panel-border-color;
$menu-bg-color: $header-panel-bg-color;
-$menu-box-shadow-color: $bg-color;
+$menu-box-shadow-color: $background;
$menu-selected-color: $room-highlight-color;
$avatar-initial-color: #ffffff;
-$avatar-bg-color: $bg-color;
+$avatar-bg-color: $background;
$h3-color: $primary-fg-color;
@@ -117,7 +116,7 @@ $settings-subsection-fg-color: $text-secondary-color;
$topleftmenu-color: $text-primary-color;
$roomheader-color: $text-primary-color;
-$roomheader-bg-color: $bg-color;
+$roomheader-bg-color: $background;
$roomheader-addroom-bg-color: rgba(92, 100, 112, 0.3);
$roomheader-addroom-fg-color: $text-primary-color;
$groupFilterPanel-button-color: $header-panel-text-primary-color;
@@ -136,7 +135,7 @@ $theme-button-bg-color: #e3e8f0;
$dialpad-button-bg-color: $quinary-content;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
-$roomlist-filter-active-bg-color: $bg-color;
+$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(33, 38, 44, 0.90);
$roomlist-header-color: $tertiary-fg-color;
$roomsublist-divider-color: $primary-fg-color;
@@ -246,7 +245,7 @@ $composer-shadow-color: rgba(0, 0, 0, 0.28);
$eventbubble-self-bg: #14322E;
$eventbubble-others-bg: $event-selected-color;
$eventbubble-bg-hover: #1C2026;
-$eventbubble-avatar-outline: $bg-color;
+$eventbubble-avatar-outline: $background;
$eventbubble-reply-color: #C1C6CD;
// ***** Mixins! *****
From 79d76d8b493d9cb46d62d57a8d456dde1b458c2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:17:04 +0200
Subject: [PATCH 095/619] $base-text-color -> $primary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/themes/dark/css/_dark.scss | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 56adaf7513..e30979f1ea 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -20,7 +20,6 @@ $space-nav: rgba($panel-base, 0.1);
// unified palette
// try to use these colors when possible
-$base-text-color: $primary-content;
$header-panel-bg-color: #20252B;
$header-panel-border-color: #000000;
$header-panel-text-primary-color: #B9BEC6;
@@ -98,7 +97,7 @@ $avatar-bg-color: $background;
$h3-color: $primary-fg-color;
-$dialog-title-fg-color: $base-text-color;
+$dialog-title-fg-color: $primary-content;
$dialog-backdrop-color: #000;
$dialog-shadow-color: rgba(0, 0, 0, 0.48);
$dialog-close-fg-color: #9fa9ba;
From 57ce89544589e3610df742d454cdfbf762639137 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:18:40 +0200
Subject: [PATCH 096/619] $text-primary-color -> $primary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/themes/dark/css/_dark.scss | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index e30979f1ea..d1fc31da97 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -24,7 +24,6 @@ $header-panel-bg-color: #20252B;
$header-panel-border-color: #000000;
$header-panel-text-primary-color: #B9BEC6;
$header-panel-text-secondary-color: #c8c8cd;
-$text-primary-color: $primary-content;
$text-secondary-color: #B9BEC6;
$quaternary-fg-color: $quaternary-content;
$search-bg-color: #181b21;
@@ -32,7 +31,7 @@ $search-placeholder-color: #61708b;
$room-highlight-color: #343a46;
// typical text (dark-on-white in light skin)
-$primary-fg-color: $text-primary-color;
+$primary-fg-color: $primary-content;
$muted-fg-color: $header-panel-text-primary-color;
// additional text colors
@@ -113,11 +112,11 @@ $settings-profile-button-bg-color: #e7e7e7;
$settings-profile-button-fg-color: $settings-profile-overlay-placeholder-fg-color;
$settings-subsection-fg-color: $text-secondary-color;
-$topleftmenu-color: $text-primary-color;
-$roomheader-color: $text-primary-color;
+$topleftmenu-color: $primary-content;
+$roomheader-color: $primary-content;
$roomheader-bg-color: $background;
$roomheader-addroom-bg-color: rgba(92, 100, 112, 0.3);
-$roomheader-addroom-fg-color: $text-primary-color;
+$roomheader-addroom-fg-color: $primary-content;
$groupFilterPanel-button-color: $header-panel-text-primary-color;
$groupheader-button-color: $header-panel-text-primary-color;
$rightpanel-button-color: $header-panel-text-primary-color;
@@ -166,12 +165,12 @@ $event-highlight-bg-color: #25271F;
$event-timestamp-color: $text-secondary-color;
// Tabbed views
-$tab-label-fg-color: $text-primary-color;
-$tab-label-active-fg-color: $text-primary-color;
+$tab-label-fg-color: $primary-content;
+$tab-label-active-fg-color: $primary-content;
$tab-label-bg-color: transparent;
$tab-label-active-bg-color: $accent-color;
-$tab-label-icon-bg-color: $text-primary-color;
-$tab-label-active-icon-bg-color: $text-primary-color;
+$tab-label-icon-bg-color: $primary-content;
+$tab-label-active-icon-bg-color: $primary-content;
// Buttons
$button-primary-fg-color: $primary-content;
From 9ecd3b03f1c8eced8a0b0b9ac0ea91932190c0d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:20:30 +0200
Subject: [PATCH 097/619] $quaternary-fg-color -> $quaternary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/audio_messages/_SeekBar.scss | 2 +-
res/css/views/dialogs/_InviteDialog.scss | 2 +-
res/css/views/voip/_DialPadContextMenu.scss | 2 +-
res/css/views/voip/_DialPadModal.scss | 2 +-
res/themes/dark/css/_dark.scss | 7 +++----
res/themes/light/css/_light.scss | 3 +--
6 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/res/css/views/audio_messages/_SeekBar.scss b/res/css/views/audio_messages/_SeekBar.scss
index d13fe4ac6a..783a3c50ee 100644
--- a/res/css/views/audio_messages/_SeekBar.scss
+++ b/res/css/views/audio_messages/_SeekBar.scss
@@ -27,7 +27,7 @@ limitations under the License.
width: 100%;
height: 1px;
- background: $quaternary-fg-color;
+ background: $quaternary-content;
outline: none; // remove blue selection border
position: relative; // for before+after pseudo elements later on
diff --git a/res/css/views/dialogs/_InviteDialog.scss b/res/css/views/dialogs/_InviteDialog.scss
index 9fc4b7a15c..c4ad9c6171 100644
--- a/res/css/views/dialogs/_InviteDialog.scss
+++ b/res/css/views/dialogs/_InviteDialog.scss
@@ -352,7 +352,7 @@ limitations under the License.
border-right: 0;
border-radius: 0;
margin-top: 0;
- border-color: $quaternary-fg-color;
+ border-color: $quaternary-content;
input {
font-size: 18px;
diff --git a/res/css/views/voip/_DialPadContextMenu.scss b/res/css/views/voip/_DialPadContextMenu.scss
index 527d223ffc..d2014241e9 100644
--- a/res/css/views/voip/_DialPadContextMenu.scss
+++ b/res/css/views/voip/_DialPadContextMenu.scss
@@ -30,7 +30,7 @@ limitations under the License.
margin-right: 20px;
/* a separator between the input line and the dial buttons */
- border-bottom: 1px solid $quaternary-fg-color;
+ border-bottom: 1px solid $quaternary-content;
transition: border-bottom 0.25s;
}
diff --git a/res/css/views/voip/_DialPadModal.scss b/res/css/views/voip/_DialPadModal.scss
index b8042f77ae..f378507f90 100644
--- a/res/css/views/voip/_DialPadModal.scss
+++ b/res/css/views/voip/_DialPadModal.scss
@@ -30,7 +30,7 @@ limitations under the License.
margin-right: 40px;
/* a separator between the input line and the dial buttons */
- border-bottom: 1px solid $quaternary-fg-color;
+ border-bottom: 1px solid $quaternary-content;
transition: border-bottom 0.25s;
}
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index d1fc31da97..416098d151 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -25,7 +25,6 @@ $header-panel-border-color: #000000;
$header-panel-text-primary-color: #B9BEC6;
$header-panel-text-secondary-color: #c8c8cd;
$text-secondary-color: #B9BEC6;
-$quaternary-fg-color: $quaternary-content;
$search-bg-color: #181b21;
$search-placeholder-color: #61708b;
$room-highlight-color: #343a46;
@@ -224,9 +223,9 @@ $message-body-panel-bg-color: $quinary-content;
$message-body-panel-icon-fg-color: $secondary-fg-color;
$message-body-panel-icon-bg-color: $system; // "System Dark"
-$voice-record-stop-border-color: $quaternary-fg-color;
-$voice-record-waveform-incomplete-fg-color: $quaternary-fg-color;
-$voice-record-icon-color: $quaternary-fg-color;
+$voice-record-stop-border-color: $quaternary-content;
+$voice-record-waveform-incomplete-fg-color: $quaternary-content;
+$voice-record-icon-color: $quaternary-content;
$voice-playback-button-bg-color: $message-body-panel-icon-bg-color;
$voice-playback-button-fg-color: $message-body-panel-icon-fg-color;
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index 576602c133..de87fe9e1f 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -40,7 +40,6 @@ $notice-primary-bg-color: rgba(255, 75, 85, 0.16);
$primary-fg-color: #2e2f32;
$secondary-fg-color: $secondary-content;
$tertiary-fg-color: #8D99A5;
-$quaternary-fg-color: $quaternary-content;
$header-panel-bg-color: #f3f8fd;
// typical text (dark-on-white in light skin)
@@ -352,7 +351,7 @@ $voice-record-stop-symbol-color: #ff4b55;
$voice-record-live-circle-color: #ff4b55;
$voice-record-stop-border-color: $quinary-content;
-$voice-record-waveform-incomplete-fg-color: $quaternary-fg-color;
+$voice-record-waveform-incomplete-fg-color: $quaternary-content;
$voice-record-icon-color: $tertiary-fg-color;
$voice-playback-button-bg-color: $message-body-panel-icon-bg-color;
$voice-playback-button-fg-color: $message-body-panel-icon-fg-color;
From e5fd19c33229895f4aac362a5cb6c9a61fb7fc8f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:27:12 +0200
Subject: [PATCH 098/619] $primary-fg-color -> $primary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/_common.scss | 16 ++++++++--------
res/css/structures/_ContextualMenu.scss | 2 +-
res/css/structures/_CreateRoom.scss | 2 +-
res/css/structures/_GroupFilterPanel.scss | 2 +-
res/css/structures/_GroupView.scss | 2 +-
res/css/structures/_LeftPanelWidget.scss | 2 +-
res/css/structures/_MainSplit.scss | 2 +-
res/css/structures/_MatrixChat.scss | 2 +-
res/css/structures/_NotificationPanel.scss | 4 ++--
res/css/structures/_RoomDirectory.scss | 6 +++---
res/css/structures/_RoomSearch.scss | 2 +-
res/css/structures/_RoomStatusBar.scss | 6 +++---
res/css/structures/_SpacePanel.scss | 2 +-
res/css/structures/_SpaceRoomDirectory.scss | 6 +++---
res/css/structures/_SpaceRoomView.scss | 8 ++++----
res/css/structures/_ToastContainer.scss | 6 +++---
res/css/structures/_UserMenu.scss | 6 +++---
res/css/structures/_ViewSource.scss | 2 +-
res/css/views/audio_messages/_AudioPlayer.scss | 2 +-
res/css/views/beta/_BetaCard.scss | 4 ++--
.../context_menus/_IconizedContextMenu.scss | 6 +++---
.../views/context_menus/_MessageContextMenu.scss | 2 +-
.../views/dialogs/_AddExistingToSpaceDialog.scss | 8 ++++----
.../dialogs/_CommunityPrototypeInviteDialog.scss | 2 +-
.../views/dialogs/_ConfirmUserActionDialog.scss | 2 +-
res/css/views/dialogs/_CreateGroupDialog.scss | 2 +-
res/css/views/dialogs/_CreateRoomDialog.scss | 2 +-
.../dialogs/_CreateSpaceFromCommunityDialog.scss | 8 ++++----
res/css/views/dialogs/_CreateSubspaceDialog.scss | 2 +-
res/css/views/dialogs/_ForwardDialog.scss | 2 +-
.../dialogs/_GenericFeatureFeedbackDialog.scss | 2 +-
res/css/views/dialogs/_HostSignupDialog.scss | 2 +-
res/css/views/dialogs/_InviteDialog.scss | 10 +++++-----
res/css/views/dialogs/_JoinRuleDropdown.scss | 2 +-
res/css/views/dialogs/_LeaveSpaceDialog.scss | 2 +-
.../dialogs/_ManageRestrictedJoinRuleDialog.scss | 2 +-
.../views/dialogs/_MessageEditHistoryDialog.scss | 2 +-
.../dialogs/_RoomSettingsDialogBridges.scss | 4 ++--
res/css/views/dialogs/_ServerOfflineDialog.scss | 4 ++--
res/css/views/dialogs/_SpaceSettingsDialog.scss | 4 ++--
.../security/_AccessSecretStorageDialog.scss | 2 +-
.../security/_CreateSecretStorageDialog.scss | 4 ++--
.../dialogs/security/_KeyBackupFailedDialog.scss | 2 +-
res/css/views/directory/_NetworkDropdown.scss | 2 +-
res/css/views/elements/_AddressTile.scss | 2 +-
res/css/views/elements/_Dropdown.scss | 4 ++--
res/css/views/elements/_Field.scss | 6 +++---
res/css/views/elements/_RichText.scss | 2 +-
res/css/views/elements/_SSOButtons.scss | 2 +-
res/css/views/elements/_Spinner.scss | 2 +-
res/css/views/elements/_Tooltip.scss | 2 +-
res/css/views/emojipicker/_EmojiPicker.scss | 4 ++--
res/css/views/groups/_GroupRoomList.scss | 2 +-
res/css/views/messages/_MessageActionBar.scss | 2 +-
res/css/views/messages/_ReactionsRow.scss | 6 +++---
.../views/right_panel/_PinnedMessagesCard.scss | 4 ++--
res/css/views/right_panel/_RoomSummaryCard.scss | 2 +-
res/css/views/right_panel/_UserInfo.scss | 2 +-
res/css/views/rooms/_AppsDrawer.scss | 4 ++--
res/css/views/rooms/_Autocomplete.scss | 6 +++---
res/css/views/rooms/_EntityTile.scss | 6 +++---
res/css/views/rooms/_EventTile.scss | 4 ++--
res/css/views/rooms/_MemberInfo.scss | 2 +-
res/css/views/rooms/_MessageComposer.scss | 2 +-
res/css/views/rooms/_NotificationBadge.scss | 2 +-
res/css/views/rooms/_ReplyPreview.scss | 2 +-
res/css/views/rooms/_ReplyTile.scss | 2 +-
res/css/views/rooms/_RoomList.scss | 4 ++--
res/css/views/rooms/_RoomSublist.scss | 2 +-
res/css/views/rooms/_RoomTile.scss | 2 +-
res/css/views/rooms/_SearchBar.scss | 2 +-
res/css/views/settings/_LayoutSwitcher.scss | 2 +-
res/css/views/settings/_Notifications.scss | 2 +-
res/css/views/settings/tabs/_SettingsTab.scss | 6 +++---
.../tabs/room/_SecurityRoomSettingsTab.scss | 2 +-
.../tabs/user/_AppearanceUserSettingsTab.scss | 6 +++---
.../tabs/user/_PreferencesUserSettingsTab.scss | 2 +-
res/css/views/voip/_CallViewForRoom.scss | 2 +-
res/themes/dark/css/_dark.scss | 5 ++---
res/themes/light-custom/css/_custom.scss | 4 ++--
res/themes/light/css/_light.scss | 5 ++---
81 files changed, 140 insertions(+), 142 deletions(-)
diff --git a/res/css/_common.scss b/res/css/_common.scss
index 7439b36218..6c82fdbbdb 100644
--- a/res/css/_common.scss
+++ b/res/css/_common.scss
@@ -54,7 +54,7 @@ body {
font-family: $font-family;
font-size: $font-15px;
background-color: $background;
- color: $primary-fg-color;
+ color: $primary-content;
border: 0px;
margin: 0px;
@@ -89,7 +89,7 @@ b {
}
h2 {
- color: $primary-fg-color;
+ color: $primary-content;
font-weight: 400;
font-size: $font-18px;
margin-top: 16px;
@@ -142,12 +142,12 @@ textarea::placeholder {
input[type=text], input[type=password], textarea {
background-color: transparent;
- color: $primary-fg-color;
+ color: $primary-content;
}
/* Required by Firefox */
textarea {
- color: $primary-fg-color;
+ color: $primary-content;
}
input[type=text]:focus, input[type=password]:focus, textarea:focus {
@@ -173,7 +173,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
.mx_textinput > input[type=search] {
border: none;
flex: 1;
- color: $primary-fg-color;
+ color: $primary-content;
}
:not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type=text],
@@ -184,7 +184,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
background-color: transparent;
color: $input-darker-fg-color;
border-radius: 4px;
- border: 1px solid rgba($primary-fg-color, .1);
+ border: 1px solid rgba($primary-content, .1);
// these things should probably not be defined globally
margin: 9px;
}
@@ -379,7 +379,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
.mx_Dialog_content {
margin: 24px 0 68px;
font-size: $font-14px;
- color: $primary-fg-color;
+ color: $primary-content;
word-wrap: break-word;
}
@@ -488,7 +488,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
border-radius: 3px;
border: 1px solid $input-border-color;
padding: 9px;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $background;
}
diff --git a/res/css/structures/_ContextualMenu.scss b/res/css/structures/_ContextualMenu.scss
index d7f2cb76e8..9f2b9e24b8 100644
--- a/res/css/structures/_ContextualMenu.scss
+++ b/res/css/structures/_ContextualMenu.scss
@@ -34,7 +34,7 @@ limitations under the License.
border-radius: 8px;
box-shadow: 4px 4px 12px 0 $menu-box-shadow-color;
background-color: $menu-bg-color;
- color: $primary-fg-color;
+ color: $primary-content;
position: absolute;
font-size: $font-14px;
z-index: 5001;
diff --git a/res/css/structures/_CreateRoom.scss b/res/css/structures/_CreateRoom.scss
index e859beb20e..3d23ccc4b2 100644
--- a/res/css/structures/_CreateRoom.scss
+++ b/res/css/structures/_CreateRoom.scss
@@ -18,7 +18,7 @@ limitations under the License.
width: 960px;
margin-left: auto;
margin-right: auto;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_CreateRoom input,
diff --git a/res/css/structures/_GroupFilterPanel.scss b/res/css/structures/_GroupFilterPanel.scss
index 6ff4fb5c3e..6923ebeb5e 100644
--- a/res/css/structures/_GroupFilterPanel.scss
+++ b/res/css/structures/_GroupFilterPanel.scss
@@ -81,7 +81,7 @@ limitations under the License.
.mx_TagTile_selected_prototype {
.mx_TagTile_homeIcon::before {
- background-color: $primary-fg-color; // dark-on-light
+ background-color: $primary-content; // dark-on-light
}
}
diff --git a/res/css/structures/_GroupView.scss b/res/css/structures/_GroupView.scss
index fb660f4194..7d20fda09d 100644
--- a/res/css/structures/_GroupView.scss
+++ b/res/css/structures/_GroupView.scss
@@ -132,7 +132,7 @@ limitations under the License.
width: 100%;
height: 31px;
overflow: hidden;
- color: $primary-fg-color;
+ color: $primary-content;
font-weight: bold;
font-size: $font-22px;
padding-left: 19px;
diff --git a/res/css/structures/_LeftPanelWidget.scss b/res/css/structures/_LeftPanelWidget.scss
index 6e2d99bb37..93c2898395 100644
--- a/res/css/structures/_LeftPanelWidget.scss
+++ b/res/css/structures/_LeftPanelWidget.scss
@@ -113,7 +113,7 @@ limitations under the License.
&:hover .mx_LeftPanelWidget_resizerHandle {
opacity: 0.8;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_LeftPanelWidget_maximizeButton {
diff --git a/res/css/structures/_MainSplit.scss b/res/css/structures/_MainSplit.scss
index 8199121420..407a1c270c 100644
--- a/res/css/structures/_MainSplit.scss
+++ b/res/css/structures/_MainSplit.scss
@@ -38,7 +38,7 @@ limitations under the License.
width: 4px !important;
border-radius: 4px !important;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
opacity: 0.8;
}
}
diff --git a/res/css/structures/_MatrixChat.scss b/res/css/structures/_MatrixChat.scss
index b660a6446c..63efa92ebc 100644
--- a/res/css/structures/_MatrixChat.scss
+++ b/res/css/structures/_MatrixChat.scss
@@ -94,7 +94,7 @@ limitations under the License.
content: ' ';
- background-color: $primary-fg-color;
+ background-color: $primary-content;
opacity: 0.8;
}
}
diff --git a/res/css/structures/_NotificationPanel.scss b/res/css/structures/_NotificationPanel.scss
index be2cbaef1d..5ef9be31d2 100644
--- a/res/css/structures/_NotificationPanel.scss
+++ b/res/css/structures/_NotificationPanel.scss
@@ -70,7 +70,7 @@ limitations under the License.
}
.mx_NotificationPanel .mx_EventTile_roomName a {
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_NotificationPanel .mx_EventTile_avatar {
@@ -79,7 +79,7 @@ limitations under the License.
.mx_NotificationPanel .mx_EventTile .mx_SenderProfile,
.mx_NotificationPanel .mx_EventTile .mx_MessageTimestamp {
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-12px;
display: inline;
}
diff --git a/res/css/structures/_RoomDirectory.scss b/res/css/structures/_RoomDirectory.scss
index ec07500af5..d9284a2aae 100644
--- a/res/css/structures/_RoomDirectory.scss
+++ b/res/css/structures/_RoomDirectory.scss
@@ -28,7 +28,7 @@ limitations under the License.
.mx_RoomDirectory {
margin-bottom: 12px;
- color: $primary-fg-color;
+ color: $primary-content;
word-break: break-word;
display: flex;
flex-direction: column;
@@ -71,7 +71,7 @@ limitations under the License.
font-weight: $font-semi-bold;
font-size: $font-15px;
line-height: $font-18px;
- color: $primary-fg-color;
+ color: $primary-content;
}
> p {
@@ -97,7 +97,7 @@ limitations under the License.
}
.mx_RoomDirectory_table {
- color: $primary-fg-color;
+ color: $primary-content;
display: grid;
font-size: $font-12px;
grid-template-columns: max-content auto max-content max-content max-content;
diff --git a/res/css/structures/_RoomSearch.scss b/res/css/structures/_RoomSearch.scss
index 7fdafab5a6..ecbf5e3992 100644
--- a/res/css/structures/_RoomSearch.scss
+++ b/res/css/structures/_RoomSearch.scss
@@ -40,7 +40,7 @@ limitations under the License.
.mx_RoomSearch_input {
border: none !important; // !important to override default app-wide styles
flex: 1 !important; // !important to override default app-wide styles
- color: $primary-fg-color !important; // !important to override default app-wide styles
+ color: $primary-content !important; // !important to override default app-wide styles
padding: 0;
height: 100%;
width: 100%;
diff --git a/res/css/structures/_RoomStatusBar.scss b/res/css/structures/_RoomStatusBar.scss
index 89cb8c0ba3..bdfbca1afa 100644
--- a/res/css/structures/_RoomStatusBar.scss
+++ b/res/css/structures/_RoomStatusBar.scss
@@ -171,14 +171,14 @@ limitations under the License.
}
.mx_RoomStatusBar_connectionLostBar_desc {
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-13px;
opacity: 0.5;
padding-bottom: 20px;
}
.mx_RoomStatusBar_resend_link {
- color: $primary-fg-color !important;
+ color: $primary-content !important;
text-decoration: underline !important;
cursor: pointer;
}
@@ -187,7 +187,7 @@ limitations under the License.
height: 50px;
line-height: $font-50px;
- color: $primary-fg-color;
+ color: $primary-content;
opacity: 0.5;
overflow-y: hidden;
display: block;
diff --git a/res/css/structures/_SpacePanel.scss b/res/css/structures/_SpacePanel.scss
index 1dea6332f5..399baf10bb 100644
--- a/res/css/structures/_SpacePanel.scss
+++ b/res/css/structures/_SpacePanel.scss
@@ -235,7 +235,7 @@ $activeBorderColor: $secondary-fg-color;
mask-size: contain;
mask-repeat: no-repeat;
mask-image: url('$(res)/img/element-icons/context-menu.svg');
- background: $primary-fg-color;
+ background: $primary-content;
}
}
}
diff --git a/res/css/structures/_SpaceRoomDirectory.scss b/res/css/structures/_SpaceRoomDirectory.scss
index d251e48947..30d0b7991d 100644
--- a/res/css/structures/_SpaceRoomDirectory.scss
+++ b/res/css/structures/_SpaceRoomDirectory.scss
@@ -22,7 +22,7 @@ limitations under the License.
.mx_SpaceRoomDirectory {
height: 100%;
margin-bottom: 12px;
- color: $primary-fg-color;
+ color: $primary-content;
word-break: break-word;
display: flex;
flex-direction: column;
@@ -84,7 +84,7 @@ limitations under the License.
align-items: center;
font-size: $font-15px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
.mx_AccessibleButton {
padding: 4px 12px;
@@ -136,7 +136,7 @@ limitations under the License.
font-weight: $font-semi-bold;
font-size: $font-18px;
line-height: $font-22px;
- color: $primary-fg-color;
+ color: $primary-content;
}
> span {
diff --git a/res/css/structures/_SpaceRoomView.scss b/res/css/structures/_SpaceRoomView.scss
index 945de01eba..d1758ce757 100644
--- a/res/css/structures/_SpaceRoomView.scss
+++ b/res/css/structures/_SpaceRoomView.scss
@@ -56,7 +56,7 @@ $SpaceRoomViewInnerWidth: 428px;
}
> span {
- color: $primary-fg-color;
+ color: $primary-content;
}
}
}
@@ -72,7 +72,7 @@ $SpaceRoomViewInnerWidth: 428px;
margin: 0;
font-size: $font-24px;
font-weight: $font-semi-bold;
- color: $primary-fg-color;
+ color: $primary-content;
width: max-content;
}
@@ -154,7 +154,7 @@ $SpaceRoomViewInnerWidth: 428px;
font-weight: $font-semi-bold;
font-size: $font-14px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
margin-top: 24px;
position: relative;
padding-left: 24px;
@@ -354,7 +354,7 @@ $SpaceRoomViewInnerWidth: 428px;
.mx_SpaceFeedbackPrompt {
padding: 7px; // 8px - 1px border
- border: 1px solid rgba($primary-fg-color, .1);
+ border: 1px solid rgba($primary-content, .1);
border-radius: 8px;
width: max-content;
margin: 0 0 -40px auto; // collapse its own height to not push other components down
diff --git a/res/css/structures/_ToastContainer.scss b/res/css/structures/_ToastContainer.scss
index 5cd938f1ce..8aed21e36c 100644
--- a/res/css/structures/_ToastContainer.scss
+++ b/res/css/structures/_ToastContainer.scss
@@ -36,8 +36,8 @@ limitations under the License.
.mx_Toast_toast {
grid-row: 1 / 3;
grid-column: 1;
- color: $primary-fg-color;
background-color: $system;
+ color: $primary-content;
box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.5);
border-radius: 8px;
overflow: hidden;
@@ -63,7 +63,7 @@ limitations under the License.
&.mx_Toast_icon_verification::after {
mask-image: url("$(res)/img/e2e/normal.svg");
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
&.mx_Toast_icon_verification_warning {
@@ -82,7 +82,7 @@ limitations under the License.
&.mx_Toast_icon_secure_backup::after {
mask-image: url('$(res)/img/feather-customised/secure-backup.svg');
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_Toast_title, .mx_Toast_body {
diff --git a/res/css/structures/_UserMenu.scss b/res/css/structures/_UserMenu.scss
index 17e6ad75df..51ec4d23e3 100644
--- a/res/css/structures/_UserMenu.scss
+++ b/res/css/structures/_UserMenu.scss
@@ -35,7 +35,7 @@ limitations under the License.
// we cheat opacity on the theme colour with an after selector here
&::after {
content: '';
- border-bottom: 1px solid $primary-fg-color; // XXX: Variable abuse
+ border-bottom: 1px solid $primary-content; // XXX: Variable abuse
opacity: 0.2;
display: block;
padding-top: 8px;
@@ -176,7 +176,7 @@ limitations under the License.
width: 85%;
opacity: 0.2;
border: none;
- border-bottom: 1px solid $primary-fg-color; // XXX: Variable abuse
+ border-bottom: 1px solid $primary-content; // XXX: Variable abuse
}
&.mx_IconizedContextMenu {
@@ -292,7 +292,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $primary-fg-color;
+ background: $primary-content;
}
}
diff --git a/res/css/structures/_ViewSource.scss b/res/css/structures/_ViewSource.scss
index 248eab5d88..e3d6135ef3 100644
--- a/res/css/structures/_ViewSource.scss
+++ b/res/css/structures/_ViewSource.scss
@@ -24,7 +24,7 @@ limitations under the License.
.mx_ViewSource_heading {
font-size: $font-17px;
font-weight: 400;
- color: $primary-fg-color;
+ color: $primary-content;
margin-top: 0.7em;
}
diff --git a/res/css/views/audio_messages/_AudioPlayer.scss b/res/css/views/audio_messages/_AudioPlayer.scss
index 77dcebbb9a..3c2551e36a 100644
--- a/res/css/views/audio_messages/_AudioPlayer.scss
+++ b/res/css/views/audio_messages/_AudioPlayer.scss
@@ -33,7 +33,7 @@ limitations under the License.
}
.mx_AudioPlayer_mediaName {
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-15px;
line-height: $font-15px;
text-overflow: ellipsis;
diff --git a/res/css/views/beta/_BetaCard.scss b/res/css/views/beta/_BetaCard.scss
index 2af4e79ecd..e7aa34487b 100644
--- a/res/css/views/beta/_BetaCard.scss
+++ b/res/css/views/beta/_BetaCard.scss
@@ -29,7 +29,7 @@ limitations under the License.
font-weight: $font-semi-bold;
font-size: $font-18px;
line-height: $font-22px;
- color: $primary-fg-color;
+ color: $primary-content;
margin: 4px 0 14px;
.mx_BetaCard_betaPill {
@@ -72,7 +72,7 @@ limitations under the License.
margin: 16px 0 0;
font-size: $font-15px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
.mx_SettingsFlag_microcopy {
margin-top: 4px;
diff --git a/res/css/views/context_menus/_IconizedContextMenu.scss b/res/css/views/context_menus/_IconizedContextMenu.scss
index ff176eef7e..ca40f18cd4 100644
--- a/res/css/views/context_menus/_IconizedContextMenu.scss
+++ b/res/css/views/context_menus/_IconizedContextMenu.scss
@@ -36,7 +36,7 @@ limitations under the License.
//
// Therefore, we just hack in a line and border the thing ourselves
&::before {
- border-top: 1px solid $primary-fg-color;
+ border-top: 1px solid $primary-content;
opacity: 0.1;
content: '';
@@ -63,7 +63,7 @@ limitations under the License.
padding-top: 12px;
padding-bottom: 12px;
text-decoration: none;
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-15px;
line-height: $font-24px;
@@ -119,7 +119,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $primary-fg-color;
+ background: $primary-content;
}
}
diff --git a/res/css/views/context_menus/_MessageContextMenu.scss b/res/css/views/context_menus/_MessageContextMenu.scss
index 338841cce4..5af748e28d 100644
--- a/res/css/views/context_menus/_MessageContextMenu.scss
+++ b/res/css/views/context_menus/_MessageContextMenu.scss
@@ -30,7 +30,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $primary-fg-color;
+ background: $primary-content;
}
}
diff --git a/res/css/views/dialogs/_AddExistingToSpaceDialog.scss b/res/css/views/dialogs/_AddExistingToSpaceDialog.scss
index 42e17c8d98..2758533efc 100644
--- a/res/css/views/dialogs/_AddExistingToSpaceDialog.scss
+++ b/res/css/views/dialogs/_AddExistingToSpaceDialog.scss
@@ -79,7 +79,7 @@ limitations under the License.
margin-top: 8px;
font-size: $font-15px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
}
> * {
@@ -105,7 +105,7 @@ limitations under the License.
margin-top: 4px;
font-size: $font-12px;
line-height: $font-15px;
- color: $primary-fg-color;
+ color: $primary-content;
}
}
@@ -126,7 +126,7 @@ limitations under the License.
&::before {
content: '';
position: absolute;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
mask-repeat: no-repeat;
mask-position: center;
mask-size: contain;
@@ -145,7 +145,7 @@ limitations under the License.
.mx_AddExistingToSpaceDialog {
width: 480px;
- color: $primary-fg-color;
+ color: $primary-content;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
diff --git a/res/css/views/dialogs/_CommunityPrototypeInviteDialog.scss b/res/css/views/dialogs/_CommunityPrototypeInviteDialog.scss
index beae03f00f..5d6c817b14 100644
--- a/res/css/views/dialogs/_CommunityPrototypeInviteDialog.scss
+++ b/res/css/views/dialogs/_CommunityPrototypeInviteDialog.scss
@@ -65,7 +65,7 @@ limitations under the License.
.mx_CommunityPrototypeInviteDialog_personName {
font-weight: 600;
font-size: $font-14px;
- color: $primary-fg-color;
+ color: $primary-content;
margin-left: 7px;
}
diff --git a/res/css/views/dialogs/_ConfirmUserActionDialog.scss b/res/css/views/dialogs/_ConfirmUserActionDialog.scss
index c390398020..5ac0f07b14 100644
--- a/res/css/views/dialogs/_ConfirmUserActionDialog.scss
+++ b/res/css/views/dialogs/_ConfirmUserActionDialog.scss
@@ -35,7 +35,7 @@ limitations under the License.
.mx_ConfirmUserActionDialog_reasonField {
font-size: $font-14px;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $background;
border-radius: 3px;
diff --git a/res/css/views/dialogs/_CreateGroupDialog.scss b/res/css/views/dialogs/_CreateGroupDialog.scss
index 58045e1d7f..ef9c2b73d4 100644
--- a/res/css/views/dialogs/_CreateGroupDialog.scss
+++ b/res/css/views/dialogs/_CreateGroupDialog.scss
@@ -29,7 +29,7 @@ limitations under the License.
border-radius: 3px;
border: 1px solid $input-border-color;
padding: 9px;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $background;
}
diff --git a/res/css/views/dialogs/_CreateRoomDialog.scss b/res/css/views/dialogs/_CreateRoomDialog.scss
index 818c93073a..9cfa8ce25a 100644
--- a/res/css/views/dialogs/_CreateRoomDialog.scss
+++ b/res/css/views/dialogs/_CreateRoomDialog.scss
@@ -55,7 +55,7 @@ limitations under the License.
border-radius: 3px;
border: 1px solid $input-border-color;
padding: 9px;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $background;
width: 100%;
}
diff --git a/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss b/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
index afa722e05e..74a0e9dd8a 100644
--- a/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
+++ b/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
@@ -23,7 +23,7 @@ limitations under the License.
.mx_CreateSpaceFromCommunityDialog {
width: 480px;
- color: $primary-fg-color;
+ color: $primary-content;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
@@ -86,7 +86,7 @@ limitations under the License.
margin-top: 8px;
font-size: $font-15px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
}
> * {
@@ -112,7 +112,7 @@ limitations under the License.
margin-top: 4px;
font-size: $font-12px;
line-height: $font-15px;
- color: $primary-fg-color;
+ color: $primary-content;
}
}
@@ -138,7 +138,7 @@ limitations under the License.
&::before {
content: '';
position: absolute;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
mask-repeat: no-repeat;
mask-position: center;
mask-size: contain;
diff --git a/res/css/views/dialogs/_CreateSubspaceDialog.scss b/res/css/views/dialogs/_CreateSubspaceDialog.scss
index 1ec4731ae6..9afd5d438f 100644
--- a/res/css/views/dialogs/_CreateSubspaceDialog.scss
+++ b/res/css/views/dialogs/_CreateSubspaceDialog.scss
@@ -23,7 +23,7 @@ limitations under the License.
.mx_CreateSubspaceDialog {
width: 480px;
- color: $primary-fg-color;
+ color: $primary-content;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
diff --git a/res/css/views/dialogs/_ForwardDialog.scss b/res/css/views/dialogs/_ForwardDialog.scss
index e018f60172..898b79725f 100644
--- a/res/css/views/dialogs/_ForwardDialog.scss
+++ b/res/css/views/dialogs/_ForwardDialog.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_ForwardDialog {
width: 520px;
- color: $primary-fg-color;
+ color: $primary-content;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
diff --git a/res/css/views/dialogs/_GenericFeatureFeedbackDialog.scss b/res/css/views/dialogs/_GenericFeatureFeedbackDialog.scss
index f83eed9c53..ab7496249d 100644
--- a/res/css/views/dialogs/_GenericFeatureFeedbackDialog.scss
+++ b/res/css/views/dialogs/_GenericFeatureFeedbackDialog.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_GenericFeatureFeedbackDialog {
.mx_GenericFeatureFeedbackDialog_subheading {
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-14px;
line-height: $font-20px;
margin-bottom: 24px;
diff --git a/res/css/views/dialogs/_HostSignupDialog.scss b/res/css/views/dialogs/_HostSignupDialog.scss
index ac4bc41951..52e68da2af 100644
--- a/res/css/views/dialogs/_HostSignupDialog.scss
+++ b/res/css/views/dialogs/_HostSignupDialog.scss
@@ -70,7 +70,7 @@ limitations under the License.
}
.mx_HostSignupDialog_text_dark {
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_HostSignupDialog_text_light {
diff --git a/res/css/views/dialogs/_InviteDialog.scss b/res/css/views/dialogs/_InviteDialog.scss
index c4ad9c6171..ca7f7d74ac 100644
--- a/res/css/views/dialogs/_InviteDialog.scss
+++ b/res/css/views/dialogs/_InviteDialog.scss
@@ -56,7 +56,7 @@ limitations under the License.
box-sizing: border-box;
min-width: 40%;
flex: 1 !important;
- color: $primary-fg-color !important;
+ color: $primary-content !important;
}
}
@@ -94,7 +94,7 @@ limitations under the License.
}
> span {
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_InviteDialog_subname {
@@ -110,7 +110,7 @@ limitations under the License.
font-size: $font-14px;
> span {
- color: $primary-fg-color;
+ color: $primary-content;
font-weight: 600;
}
@@ -220,7 +220,7 @@ limitations under the License.
.mx_InviteDialog_roomTile_name {
font-weight: 600;
font-size: $font-14px;
- color: $primary-fg-color;
+ color: $primary-content;
margin-left: 7px;
}
@@ -432,7 +432,7 @@ limitations under the License.
font-size: $font-15px;
line-height: $font-24px;
font-weight: $font-semi-bold;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_InviteDialog_multiInviterError_entry_userId {
diff --git a/res/css/views/dialogs/_JoinRuleDropdown.scss b/res/css/views/dialogs/_JoinRuleDropdown.scss
index c48a79af3c..7615156c8b 100644
--- a/res/css/views/dialogs/_JoinRuleDropdown.scss
+++ b/res/css/views/dialogs/_JoinRuleDropdown.scss
@@ -19,7 +19,7 @@ limitations under the License.
font-weight: normal;
font-family: $font-family;
font-size: $font-14px;
- color: $primary-fg-color;
+ color: $primary-content;
.mx_Dropdown_input {
border: 1px solid $input-border-color;
diff --git a/res/css/views/dialogs/_LeaveSpaceDialog.scss b/res/css/views/dialogs/_LeaveSpaceDialog.scss
index c982f50e52..6d96a957b3 100644
--- a/res/css/views/dialogs/_LeaveSpaceDialog.scss
+++ b/res/css/views/dialogs/_LeaveSpaceDialog.scss
@@ -81,7 +81,7 @@ limitations under the License.
}
> p {
- color: $primary-fg-color;
+ color: $primary-content;
}
}
diff --git a/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss b/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
index 91df76675a..d5ef57e096 100644
--- a/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
+++ b/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
@@ -23,7 +23,7 @@ limitations under the License.
.mx_ManageRestrictedJoinRuleDialog {
width: 480px;
- color: $primary-fg-color;
+ color: $primary-content;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
diff --git a/res/css/views/dialogs/_MessageEditHistoryDialog.scss b/res/css/views/dialogs/_MessageEditHistoryDialog.scss
index e9d777effd..4574344a28 100644
--- a/res/css/views/dialogs/_MessageEditHistoryDialog.scss
+++ b/res/css/views/dialogs/_MessageEditHistoryDialog.scss
@@ -37,7 +37,7 @@ limitations under the License.
list-style-type: none;
font-size: $font-14px;
padding: 0;
- color: $primary-fg-color;
+ color: $primary-content;
span.mx_EditHistoryMessage_deletion, span.mx_EditHistoryMessage_insertion {
padding: 0px 2px;
diff --git a/res/css/views/dialogs/_RoomSettingsDialogBridges.scss b/res/css/views/dialogs/_RoomSettingsDialogBridges.scss
index c97a3b69b7..f18b4917cf 100644
--- a/res/css/views/dialogs/_RoomSettingsDialogBridges.scss
+++ b/res/css/views/dialogs/_RoomSettingsDialogBridges.scss
@@ -72,7 +72,7 @@ limitations under the License.
margin-top: 0px;
margin-bottom: 0px;
font-size: 16pt;
- color: $primary-fg-color;
+ color: $primary-content;
}
> * {
@@ -81,7 +81,7 @@ limitations under the License.
}
.workspace-channel-details {
- color: $primary-fg-color;
+ color: $primary-content;
font-weight: 600;
.channel {
diff --git a/res/css/views/dialogs/_ServerOfflineDialog.scss b/res/css/views/dialogs/_ServerOfflineDialog.scss
index ae4b70beb3..7a1b0bbcab 100644
--- a/res/css/views/dialogs/_ServerOfflineDialog.scss
+++ b/res/css/views/dialogs/_ServerOfflineDialog.scss
@@ -17,10 +17,10 @@ limitations under the License.
.mx_ServerOfflineDialog {
.mx_ServerOfflineDialog_content {
padding-right: 85px;
- color: $primary-fg-color;
+ color: $primary-content;
hr {
- border-color: $primary-fg-color;
+ border-color: $primary-content;
opacity: 0.1;
border-bottom: none;
}
diff --git a/res/css/views/dialogs/_SpaceSettingsDialog.scss b/res/css/views/dialogs/_SpaceSettingsDialog.scss
index fa074fdbe8..c5e8e891e6 100644
--- a/res/css/views/dialogs/_SpaceSettingsDialog.scss
+++ b/res/css/views/dialogs/_SpaceSettingsDialog.scss
@@ -15,7 +15,7 @@ limitations under the License.
*/
.mx_SpaceSettingsDialog {
- color: $primary-fg-color;
+ color: $primary-content;
.mx_SpaceSettings_errorText {
font-weight: $font-semi-bold;
@@ -50,7 +50,7 @@ limitations under the License.
.mx_RadioButton_content {
font-weight: $font-semi-bold;
line-height: $font-18px;
- color: $primary-fg-color;
+ color: $primary-content;
}
& + span {
diff --git a/res/css/views/dialogs/security/_AccessSecretStorageDialog.scss b/res/css/views/dialogs/security/_AccessSecretStorageDialog.scss
index ec3bea0ef7..98edbf8ad8 100644
--- a/res/css/views/dialogs/security/_AccessSecretStorageDialog.scss
+++ b/res/css/views/dialogs/security/_AccessSecretStorageDialog.scss
@@ -44,7 +44,7 @@ limitations under the License.
margin-right: 8px;
position: relative;
top: 5px;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_AccessSecretStorageDialog_resetBadge::before {
diff --git a/res/css/views/dialogs/security/_CreateSecretStorageDialog.scss b/res/css/views/dialogs/security/_CreateSecretStorageDialog.scss
index d30803b1f0..b14206ff6d 100644
--- a/res/css/views/dialogs/security/_CreateSecretStorageDialog.scss
+++ b/res/css/views/dialogs/security/_CreateSecretStorageDialog.scss
@@ -56,7 +56,7 @@ limitations under the License.
margin-right: 8px;
position: relative;
top: 5px;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_CreateSecretStorageDialog_secureBackupTitle::before {
@@ -101,7 +101,7 @@ limitations under the License.
margin-right: 8px;
position: relative;
top: 5px;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_CreateSecretStorageDialog_optionIcon_securePhrase {
diff --git a/res/css/views/dialogs/security/_KeyBackupFailedDialog.scss b/res/css/views/dialogs/security/_KeyBackupFailedDialog.scss
index 05ce158413..4a48012672 100644
--- a/res/css/views/dialogs/security/_KeyBackupFailedDialog.scss
+++ b/res/css/views/dialogs/security/_KeyBackupFailedDialog.scss
@@ -26,7 +26,7 @@ limitations under the License.
&::before {
mask: url("$(res)/img/e2e/lock-warning-filled.svg");
mask-repeat: no-repeat;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
content: "";
position: absolute;
top: -6px;
diff --git a/res/css/views/directory/_NetworkDropdown.scss b/res/css/views/directory/_NetworkDropdown.scss
index eb24cb0107..93cecd8676 100644
--- a/res/css/views/directory/_NetworkDropdown.scss
+++ b/res/css/views/directory/_NetworkDropdown.scss
@@ -153,7 +153,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-image: url('$(res)/img/feather-customised/chevron-down-thin.svg');
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_NetworkDropdown_handle_server {
diff --git a/res/css/views/elements/_AddressTile.scss b/res/css/views/elements/_AddressTile.scss
index c42f52f8f4..90c40842f7 100644
--- a/res/css/views/elements/_AddressTile.scss
+++ b/res/css/views/elements/_AddressTile.scss
@@ -20,7 +20,7 @@ limitations under the License.
background-color: rgba(74, 73, 74, 0.1);
border: solid 1px $input-border-color;
line-height: $font-26px;
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-14px;
font-weight: normal;
margin-right: 4px;
diff --git a/res/css/views/elements/_Dropdown.scss b/res/css/views/elements/_Dropdown.scss
index 1844f2ccd3..1acac70e42 100644
--- a/res/css/views/elements/_Dropdown.scss
+++ b/res/css/views/elements/_Dropdown.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_Dropdown {
position: relative;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_Dropdown_disabled {
@@ -52,7 +52,7 @@ limitations under the License.
padding-right: 9px;
mask: url('$(res)/img/feather-customised/dropdown-arrow.svg');
mask-repeat: no-repeat;
- background: $primary-fg-color;
+ background: $primary-content;
}
.mx_Dropdown_option {
diff --git a/res/css/views/elements/_Field.scss b/res/css/views/elements/_Field.scss
index afd5eeacdc..d74c985d4c 100644
--- a/res/css/views/elements/_Field.scss
+++ b/res/css/views/elements/_Field.scss
@@ -46,7 +46,7 @@ limitations under the License.
// corners on the field above.
border-radius: 4px;
padding: 8px 9px;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $background;
flex: 1;
min-width: 0;
@@ -67,7 +67,7 @@ limitations under the License.
height: 6px;
mask: url('$(res)/img/feather-customised/dropdown-arrow.svg');
mask-repeat: no-repeat;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
z-index: 1;
pointer-events: none;
}
@@ -100,7 +100,7 @@ limitations under the License.
color 0.25s ease-out 0.1s,
top 0.25s ease-out 0.1s,
background-color 0.25s ease-out 0.1s;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: transparent;
font-size: $font-14px;
position: absolute;
diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss
index d60282695c..b9d845ea7a 100644
--- a/res/css/views/elements/_RichText.scss
+++ b/res/css/views/elements/_RichText.scss
@@ -43,7 +43,7 @@ a.mx_Pill {
/* More specific to override `.markdown-body a` color */
.mx_EventTile_content .markdown-body a.mx_UserPill,
.mx_UserPill {
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $other-user-pill-bg-color;
}
diff --git a/res/css/views/elements/_SSOButtons.scss b/res/css/views/elements/_SSOButtons.scss
index e02816780f..a98e7b4024 100644
--- a/res/css/views/elements/_SSOButtons.scss
+++ b/res/css/views/elements/_SSOButtons.scss
@@ -35,7 +35,7 @@ limitations under the License.
font-size: $font-14px;
font-weight: $font-semi-bold;
border: 1px solid $input-border-color;
- color: $primary-fg-color;
+ color: $primary-content;
> img {
object-fit: contain;
diff --git a/res/css/views/elements/_Spinner.scss b/res/css/views/elements/_Spinner.scss
index 93d5e2d96c..2df46687af 100644
--- a/res/css/views/elements/_Spinner.scss
+++ b/res/css/views/elements/_Spinner.scss
@@ -37,7 +37,7 @@ limitations under the License.
}
.mx_Spinner_icon {
- background-color: $primary-fg-color;
+ background-color: $primary-content;
mask: url('$(res)/img/spinner.svg');
mask-size: contain;
animation: 1.1s steps(12, end) infinite spin;
diff --git a/res/css/views/elements/_Tooltip.scss b/res/css/views/elements/_Tooltip.scss
index d90c818f94..6c5a7da55a 100644
--- a/res/css/views/elements/_Tooltip.scss
+++ b/res/css/views/elements/_Tooltip.scss
@@ -84,7 +84,7 @@ limitations under the License.
// These tooltips use an older style with a chevron
.mx_Field_tooltip {
background-color: $menu-bg-color;
- color: $primary-fg-color;
+ color: $primary-content;
border: 1px solid $menu-border-color;
text-align: unset;
diff --git a/res/css/views/emojipicker/_EmojiPicker.scss b/res/css/views/emojipicker/_EmojiPicker.scss
index 05a21b933a..91c68158c9 100644
--- a/res/css/views/emojipicker/_EmojiPicker.scss
+++ b/res/css/views/emojipicker/_EmojiPicker.scss
@@ -57,7 +57,7 @@ limitations under the License.
}
.mx_EmojiPicker_anchor::before {
- background-color: $primary-fg-color;
+ background-color: $primary-content;
content: '';
display: inline-block;
mask-size: 100%;
@@ -126,7 +126,7 @@ limitations under the License.
.mx_EmojiPicker_search_icon::after {
mask: url('$(res)/img/emojipicker/search.svg') no-repeat;
mask-size: 100%;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
content: '';
display: inline-block;
width: 100%;
diff --git a/res/css/views/groups/_GroupRoomList.scss b/res/css/views/groups/_GroupRoomList.scss
index fefd17849c..2f6559f7c4 100644
--- a/res/css/views/groups/_GroupRoomList.scss
+++ b/res/css/views/groups/_GroupRoomList.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_GroupRoomTile {
position: relative;
- color: $primary-fg-color;
+ color: $primary-content;
cursor: pointer;
display: flex;
align-items: center;
diff --git a/res/css/views/messages/_MessageActionBar.scss b/res/css/views/messages/_MessageActionBar.scss
index ba2f320729..608be24264 100644
--- a/res/css/views/messages/_MessageActionBar.scss
+++ b/res/css/views/messages/_MessageActionBar.scss
@@ -81,7 +81,7 @@ limitations under the License.
}
.mx_MessageActionBar_maskButton:hover::after {
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
.mx_MessageActionBar_reactButton::after {
diff --git a/res/css/views/messages/_ReactionsRow.scss b/res/css/views/messages/_ReactionsRow.scss
index b2bca6dfb3..50cafe3cda 100644
--- a/res/css/views/messages/_ReactionsRow.scss
+++ b/res/css/views/messages/_ReactionsRow.scss
@@ -16,7 +16,7 @@ limitations under the License.
.mx_ReactionsRow {
margin: 6px 0;
- color: $primary-fg-color;
+ color: $primary-content;
.mx_ReactionsRow_addReactionButton {
position: relative;
@@ -46,7 +46,7 @@ limitations under the License.
&:hover, &.mx_ReactionsRow_addReactionButton_active {
&::before {
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
}
}
@@ -68,6 +68,6 @@ limitations under the License.
}
&:hover {
- color: $primary-fg-color;
+ color: $primary-content;
}
}
diff --git a/res/css/views/right_panel/_PinnedMessagesCard.scss b/res/css/views/right_panel/_PinnedMessagesCard.scss
index 933f7f0d2c..d27e639dd6 100644
--- a/res/css/views/right_panel/_PinnedMessagesCard.scss
+++ b/res/css/views/right_panel/_PinnedMessagesCard.scss
@@ -66,7 +66,7 @@ limitations under the License.
z-index: 1;
&::after {
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
}
}
@@ -75,7 +75,7 @@ limitations under the License.
font-weight: $font-semi-bold;
font-size: $font-15px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
margin-top: 24px;
margin-bottom: 20px;
}
diff --git a/res/css/views/right_panel/_RoomSummaryCard.scss b/res/css/views/right_panel/_RoomSummaryCard.scss
index dc7804d072..3b2045422d 100644
--- a/res/css/views/right_panel/_RoomSummaryCard.scss
+++ b/res/css/views/right_panel/_RoomSummaryCard.scss
@@ -128,7 +128,7 @@ limitations under the License.
}
span {
- color: $primary-fg-color;
+ color: $primary-content;
}
}
diff --git a/res/css/views/right_panel/_UserInfo.scss b/res/css/views/right_panel/_UserInfo.scss
index 6632ccddf9..edc82cfdbf 100644
--- a/res/css/views/right_panel/_UserInfo.scss
+++ b/res/css/views/right_panel/_UserInfo.scss
@@ -55,7 +55,7 @@ limitations under the License.
}
.mx_UserInfo_separator {
- border-bottom: 1px solid rgba($primary-fg-color, .1);
+ border-bottom: 1px solid rgba($primary-content, .1);
}
.mx_UserInfo_memberDetailsContainer {
diff --git a/res/css/views/rooms/_AppsDrawer.scss b/res/css/views/rooms/_AppsDrawer.scss
index fd80836237..cfcb0c48a2 100644
--- a/res/css/views/rooms/_AppsDrawer.scss
+++ b/res/css/views/rooms/_AppsDrawer.scss
@@ -64,7 +64,7 @@ $MiniAppTileHeight: 200px;
&:hover {
.mx_AppsContainer_resizerHandle::after {
opacity: 0.8;
- background: $primary-fg-color;
+ background: $primary-content;
}
.mx_ResizeHandle_horizontal::before {
@@ -79,7 +79,7 @@ $MiniAppTileHeight: 200px;
content: '';
- background-color: $primary-fg-color;
+ background-color: $primary-content;
opacity: 0.8;
}
}
diff --git a/res/css/views/rooms/_Autocomplete.scss b/res/css/views/rooms/_Autocomplete.scss
index 5a9ec4362b..9514faa292 100644
--- a/res/css/views/rooms/_Autocomplete.scss
+++ b/res/css/views/rooms/_Autocomplete.scss
@@ -24,7 +24,7 @@
user-select: none;
cursor: pointer;
align-items: center;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_Autocomplete_Completion_block * {
@@ -40,7 +40,7 @@
user-select: none;
cursor: pointer;
align-items: center;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_Autocomplete_Completion_pill > * {
@@ -83,7 +83,7 @@
.mx_Autocomplete_provider_name {
margin: 12px;
- color: $primary-fg-color;
+ color: $primary-content;
font-weight: 400;
opacity: 0.4;
}
diff --git a/res/css/views/rooms/_EntityTile.scss b/res/css/views/rooms/_EntityTile.scss
index 27a4e67089..a2ebd6c11b 100644
--- a/res/css/views/rooms/_EntityTile.scss
+++ b/res/css/views/rooms/_EntityTile.scss
@@ -18,7 +18,7 @@ limitations under the License.
.mx_EntityTile {
display: flex;
align-items: center;
- color: $primary-fg-color;
+ color: $primary-content;
cursor: pointer;
.mx_E2EIcon {
@@ -86,12 +86,12 @@ limitations under the License.
.mx_EntityTile_ellipsis .mx_EntityTile_name {
font-style: italic;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_EntityTile_invitePlaceholder .mx_EntityTile_name {
font-style: italic;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_EntityTile_unavailable .mx_EntityTile_avatar,
diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss
index 56cede0895..d9b6f03b4c 100644
--- a/res/css/views/rooms/_EventTile.scss
+++ b/res/css/views/rooms/_EventTile.scss
@@ -55,7 +55,7 @@ $hover-select-border: 4px;
}
.mx_SenderProfile {
- color: $primary-fg-color;
+ color: $primary-content;
font-size: $font-14px;
display: inline-block; /* anti-zalgo, with overflow hidden */
overflow: hidden;
@@ -618,7 +618,7 @@ $hover-select-border: 4px;
}
.mx_EventTile_keyRequestInfo_text a {
- color: $primary-fg-color;
+ color: $primary-content;
text-decoration: underline;
cursor: pointer;
}
diff --git a/res/css/views/rooms/_MemberInfo.scss b/res/css/views/rooms/_MemberInfo.scss
index 3f7f83d334..4abd9c7c30 100644
--- a/res/css/views/rooms/_MemberInfo.scss
+++ b/res/css/views/rooms/_MemberInfo.scss
@@ -111,7 +111,7 @@ limitations under the License.
.mx_MemberInfo_field {
cursor: pointer;
font-size: $font-15px;
- color: $primary-fg-color;
+ color: $primary-content;
margin-left: 8px;
line-height: $font-23px;
}
diff --git a/res/css/views/rooms/_MessageComposer.scss b/res/css/views/rooms/_MessageComposer.scss
index 9dd04d739b..d164fac8f2 100644
--- a/res/css/views/rooms/_MessageComposer.scss
+++ b/res/css/views/rooms/_MessageComposer.scss
@@ -160,7 +160,7 @@ limitations under the License.
resize: none;
outline: none;
box-shadow: none;
- color: $primary-fg-color;
+ color: $primary-content;
background-color: $background;
font-size: $font-14px;
max-height: 120px;
diff --git a/res/css/views/rooms/_NotificationBadge.scss b/res/css/views/rooms/_NotificationBadge.scss
index 64b2623238..670e057cfa 100644
--- a/res/css/views/rooms/_NotificationBadge.scss
+++ b/res/css/views/rooms/_NotificationBadge.scss
@@ -42,7 +42,7 @@ limitations under the License.
// These are the 3 background types
&.mx_NotificationBadge_dot {
- background-color: $primary-fg-color; // increased visibility
+ background-color: $primary-content; // increased visibility
width: 6px;
height: 6px;
diff --git a/res/css/views/rooms/_ReplyPreview.scss b/res/css/views/rooms/_ReplyPreview.scss
index f6dc298563..70a820e412 100644
--- a/res/css/views/rooms/_ReplyPreview.scss
+++ b/res/css/views/rooms/_ReplyPreview.scss
@@ -28,7 +28,7 @@ limitations under the License.
.mx_ReplyPreview_header {
margin: 8px;
- color: $primary-fg-color;
+ color: $primary-content;
font-weight: 400;
opacity: 0.4;
}
diff --git a/res/css/views/rooms/_ReplyTile.scss b/res/css/views/rooms/_ReplyTile.scss
index fd21e5f348..3ef6491ec9 100644
--- a/res/css/views/rooms/_ReplyTile.scss
+++ b/res/css/views/rooms/_ReplyTile.scss
@@ -42,7 +42,7 @@ limitations under the License.
display: flex;
flex-direction: column;
text-decoration: none;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_RedactedBody {
diff --git a/res/css/views/rooms/_RoomList.scss b/res/css/views/rooms/_RoomList.scss
index 8eda25d0c9..5ae6953b50 100644
--- a/res/css/views/rooms/_RoomList.scss
+++ b/res/css/views/rooms/_RoomList.scss
@@ -43,11 +43,11 @@ limitations under the License.
div:first-child {
font-weight: $font-semi-bold;
line-height: $font-18px;
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_AccessibleButton {
- color: $primary-fg-color;
+ color: $primary-content;
position: relative;
padding: 8px 8px 8px 32px;
font-size: inherit;
diff --git a/res/css/views/rooms/_RoomSublist.scss b/res/css/views/rooms/_RoomSublist.scss
index 146b3edf71..3fffbfd64c 100644
--- a/res/css/views/rooms/_RoomSublist.scss
+++ b/res/css/views/rooms/_RoomSublist.scss
@@ -233,7 +233,7 @@ limitations under the License.
&:hover, &.mx_RoomSublist_hasMenuOpen {
.mx_RoomSublist_resizerHandle {
opacity: 0.8;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
}
}
diff --git a/res/css/views/rooms/_RoomTile.scss b/res/css/views/rooms/_RoomTile.scss
index b8f4aeb6e7..0c04f27115 100644
--- a/res/css/views/rooms/_RoomTile.scss
+++ b/res/css/views/rooms/_RoomTile.scss
@@ -124,7 +124,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $primary-fg-color;
+ background: $primary-content;
}
}
diff --git a/res/css/views/rooms/_SearchBar.scss b/res/css/views/rooms/_SearchBar.scss
index d9f730a8b6..e08168a122 100644
--- a/res/css/views/rooms/_SearchBar.scss
+++ b/res/css/views/rooms/_SearchBar.scss
@@ -47,7 +47,7 @@ limitations under the License.
padding: 5px;
font-size: $font-15px;
cursor: pointer;
- color: $primary-fg-color;
+ color: $primary-content;
border-bottom: 2px solid $accent-color;
font-weight: 600;
}
diff --git a/res/css/views/settings/_LayoutSwitcher.scss b/res/css/views/settings/_LayoutSwitcher.scss
index 924fe5ae1b..00fb8aba56 100644
--- a/res/css/views/settings/_LayoutSwitcher.scss
+++ b/res/css/views/settings/_LayoutSwitcher.scss
@@ -21,7 +21,7 @@ limitations under the License.
flex-direction: row;
gap: 24px;
- color: $primary-fg-color;
+ color: $primary-content;
> .mx_LayoutSwitcher_RadioButton {
flex-grow: 0;
diff --git a/res/css/views/settings/_Notifications.scss b/res/css/views/settings/_Notifications.scss
index f93e0a53a8..b3a91dc5db 100644
--- a/res/css/views/settings/_Notifications.scss
+++ b/res/css/views/settings/_Notifications.scss
@@ -15,7 +15,7 @@ limitations under the License.
*/
.mx_UserNotifSettings {
- color: $primary-fg-color; // override from default settings page styles
+ color: $primary-content; // override from default settings page styles
.mx_UserNotifSettings_pushRulesTable {
width: calc(100% + 12px); // +12px to line up center of 'Noisy' column with toggle switches
diff --git a/res/css/views/settings/tabs/_SettingsTab.scss b/res/css/views/settings/tabs/_SettingsTab.scss
index 3290a998ab..1e4fed6580 100644
--- a/res/css/views/settings/tabs/_SettingsTab.scss
+++ b/res/css/views/settings/tabs/_SettingsTab.scss
@@ -25,7 +25,7 @@ limitations under the License.
.mx_SettingsTab_heading {
font-size: $font-20px;
font-weight: 600;
- color: $primary-fg-color;
+ color: $primary-content;
margin-bottom: 10px;
}
@@ -37,7 +37,7 @@ limitations under the License.
font-size: $font-16px;
display: block;
font-weight: 600;
- color: $primary-fg-color;
+ color: $primary-content;
margin-bottom: 10px;
margin-top: 12px;
}
@@ -72,7 +72,7 @@ limitations under the License.
vertical-align: middle;
display: inline-block;
font-size: $font-14px;
- color: $primary-fg-color;
+ color: $primary-content;
max-width: calc(100% - $font-48px); // Force word wrap instead of colliding with the switch
box-sizing: border-box;
padding-right: 10px;
diff --git a/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss b/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss
index 2aab201352..202faae078 100644
--- a/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss
+++ b/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss
@@ -89,7 +89,7 @@ limitations under the License.
font-weight: $font-semi-bold;
font-size: $font-15px;
line-height: $font-24px;
- color: $primary-fg-color;
+ color: $primary-content;
display: block;
}
}
diff --git a/res/css/views/settings/tabs/user/_AppearanceUserSettingsTab.scss b/res/css/views/settings/tabs/user/_AppearanceUserSettingsTab.scss
index d8e617a40d..57c6e9b865 100644
--- a/res/css/views/settings/tabs/user/_AppearanceUserSettingsTab.scss
+++ b/res/css/views/settings/tabs/user/_AppearanceUserSettingsTab.scss
@@ -24,7 +24,7 @@ limitations under the License.
}
.mx_AppearanceUserSettingsTab_fontScaling {
- color: $primary-fg-color;
+ color: $primary-content;
}
.mx_AppearanceUserSettingsTab_fontSlider {
@@ -81,7 +81,7 @@ limitations under the License.
.mx_AppearanceUserSettingsTab_themeSection {
$radio-bg-color: $input-darker-bg-color;
- color: $primary-fg-color;
+ color: $primary-content;
> .mx_ThemeSelectors {
display: flex;
@@ -156,7 +156,7 @@ limitations under the License.
}
.mx_AppearanceUserSettingsTab_Advanced {
- color: $primary-fg-color;
+ color: $primary-content;
> * {
margin-bottom: 16px;
diff --git a/res/css/views/settings/tabs/user/_PreferencesUserSettingsTab.scss b/res/css/views/settings/tabs/user/_PreferencesUserSettingsTab.scss
index 4cdfa0b40f..d1076205ad 100644
--- a/res/css/views/settings/tabs/user/_PreferencesUserSettingsTab.scss
+++ b/res/css/views/settings/tabs/user/_PreferencesUserSettingsTab.scss
@@ -30,7 +30,7 @@ limitations under the License.
font-weight: $font-semi-bold;
font-size: $font-15px;
line-height: $font-18px;
- color: $primary-fg-color;
+ color: $primary-content;
margin: 16px 0;
.mx_BaseAvatar {
diff --git a/res/css/views/voip/_CallViewForRoom.scss b/res/css/views/voip/_CallViewForRoom.scss
index 769e00338e..d23fcc18bc 100644
--- a/res/css/views/voip/_CallViewForRoom.scss
+++ b/res/css/views/voip/_CallViewForRoom.scss
@@ -39,7 +39,7 @@ limitations under the License.
width: 100%;
max-width: 64px;
- background-color: $primary-fg-color;
+ background-color: $primary-content;
}
}
}
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 416098d151..885e73cee1 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -30,7 +30,6 @@ $search-placeholder-color: #61708b;
$room-highlight-color: #343a46;
// typical text (dark-on-white in light skin)
-$primary-fg-color: $primary-content;
$muted-fg-color: $header-panel-text-primary-color;
// additional text colors
@@ -93,7 +92,7 @@ $menu-selected-color: $room-highlight-color;
$avatar-initial-color: #ffffff;
$avatar-bg-color: $background;
-$h3-color: $primary-fg-color;
+$h3-color: $primary-content;
$dialog-title-fg-color: $primary-content;
$dialog-backdrop-color: #000;
@@ -135,7 +134,7 @@ $roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filt
$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(33, 38, 44, 0.90);
$roomlist-header-color: $tertiary-fg-color;
-$roomsublist-divider-color: $primary-fg-color;
+$roomsublist-divider-color: $primary-content;
$roomsublist-skeleton-ui-bg: linear-gradient(180deg, #3e444c 0%, #3e444c00 100%);
$groupFilterPanel-divider-color: $roomlist-header-color;
diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss
index d8530a8f59..f4685fe8fa 100644
--- a/res/themes/light-custom/css/_custom.scss
+++ b/res/themes/light-custom/css/_custom.scss
@@ -69,7 +69,7 @@ $roomlist-bg-color: var(--roomlist-background-color);
//
// --timeline-text-color
$message-action-bar-fg-color: var(--timeline-text-color);
-$primary-fg-color: var(--timeline-text-color);
+$primary-content: var(--timeline-text-color);
$settings-profile-overlay-placeholder-fg-color: var(--timeline-text-color);
$roomtopic-color: var(--timeline-text-color-50pct);
$tab-label-fg-color: var(--timeline-text-color);
@@ -139,7 +139,7 @@ $event-selected-color: var(--timeline-highlights-color);
$event-highlight-bg-color: var(--timeline-highlights-color);
//
// redirect some variables away from their hardcoded values in the light theme
-$settings-grey-fg-color: $primary-fg-color;
+$settings-grey-fg-color: $primary-content;
// --eventbubble colors
$eventbubble-self-bg: var(--eventbubble-self-bg, $eventbubble-self-bg);
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index de87fe9e1f..da9b3cb1ef 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -37,7 +37,6 @@ $accent-color: $accent;
$accent-bg-color: rgba(3, 179, 129, 0.16);
$notice-primary-color: #ff4b55;
$notice-primary-bg-color: rgba(255, 75, 85, 0.16);
-$primary-fg-color: #2e2f32;
$secondary-fg-color: $secondary-content;
$tertiary-fg-color: #8D99A5;
$header-panel-bg-color: #f3f8fd;
@@ -196,7 +195,7 @@ $roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filt
$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(245, 245, 245, 0.90);
$roomlist-header-color: $tertiary-fg-color;
-$roomsublist-divider-color: $primary-fg-color;
+$roomsublist-divider-color: $primary-content;
$roomsublist-skeleton-ui-bg: linear-gradient(180deg, #ffffff 0%, #ffffff00 100%);
$groupFilterPanel-divider-color: $roomlist-header-color;
@@ -317,7 +316,7 @@ $dark-panel-bg-color: $secondary-accent-color;
$panel-gradient: rgba(242, 245, 248, 0), rgba(242, 245, 248, 1);
$message-action-bar-bg-color: $background;
-$message-action-bar-fg-color: $primary-fg-color;
+$message-action-bar-fg-color: $primary-content;
$message-action-bar-border-color: #e9edf1;
$message-action-bar-hover-border-color: $focus-bg-color;
From 10bc85724a4a2dd548903c9578dddaa0624fd91b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:30:35 +0200
Subject: [PATCH 099/619] $secondary-fg-color -> $secondary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/structures/_GroupView.scss | 4 ++--
res/css/structures/_LeftPanel.scss | 4 ++--
res/css/structures/_RoomDirectory.scss | 2 +-
res/css/structures/_RoomSearch.scss | 6 ++---
res/css/structures/_SpacePanel.scss | 2 +-
res/css/structures/_SpaceRoomDirectory.scss | 10 ++++-----
res/css/structures/_SpaceRoomView.scss | 22 +++++++++----------
res/css/structures/_ToastContainer.scss | 2 +-
.../views/avatars/_DecoratedRoomAvatar.scss | 2 +-
res/css/views/beta/_BetaCard.scss | 6 ++---
.../dialogs/_AddExistingToSpaceDialog.scss | 8 +++----
.../_CreateSpaceFromCommunityDialog.scss | 2 +-
.../views/dialogs/_CreateSubspaceDialog.scss | 2 +-
res/css/views/dialogs/_ForwardDialog.scss | 2 +-
res/css/views/dialogs/_HostSignupDialog.scss | 2 +-
res/css/views/dialogs/_InviteDialog.scss | 2 +-
res/css/views/dialogs/_JoinRuleDropdown.scss | 2 +-
res/css/views/dialogs/_LeaveSpaceDialog.scss | 4 ++--
.../_ManageRestrictedJoinRuleDialog.scss | 6 ++---
.../views/dialogs/_ServerPickerDialog.scss | 4 ++--
.../views/dialogs/_SpaceSettingsDialog.scss | 2 +-
res/css/views/elements/_InviteReason.scss | 4 ++--
.../views/elements/_MiniAvatarUploader.scss | 2 +-
res/css/views/messages/_CallEvent.scss | 4 ++--
res/css/views/messages/_MessageActionBar.scss | 2 +-
res/css/views/right_panel/_BaseCard.scss | 2 +-
.../right_panel/_PinnedMessagesCard.scss | 2 +-
.../views/right_panel/_RoomSummaryCard.scss | 2 +-
res/css/views/right_panel/_WidgetCard.scss | 2 +-
res/css/views/rooms/_NewRoomIntro.scss | 2 +-
res/css/views/rooms/_PinnedEventTile.scss | 4 ++--
res/css/views/rooms/_RoomList.scss | 2 +-
.../views/rooms/_VoiceRecordComposerTile.scss | 2 +-
res/css/views/settings/_Notifications.scss | 2 +-
res/css/views/settings/tabs/_SettingsTab.scss | 2 +-
.../tabs/room/_SecurityRoomSettingsTab.scss | 6 ++---
res/css/views/spaces/_SpaceCreateMenu.scss | 5 +++--
res/css/views/voip/_CallViewHeader.scss | 6 ++---
res/themes/dark/css/_dark.scss | 9 ++++----
res/themes/light/css/_light.scss | 7 +++---
40 files changed, 81 insertions(+), 82 deletions(-)
diff --git a/res/css/structures/_GroupView.scss b/res/css/structures/_GroupView.scss
index 7d20fda09d..5e224b1f38 100644
--- a/res/css/structures/_GroupView.scss
+++ b/res/css/structures/_GroupView.scss
@@ -397,7 +397,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-image: url('$(res)/img/element-icons/room/room-summary.svg');
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
.mx_AccessibleButton_kind_link {
@@ -422,7 +422,7 @@ limitations under the License.
mask-position: center;
mask-size: 8px;
mask-image: url('$(res)/img/image-view/close.svg');
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
}
}
diff --git a/res/css/structures/_LeftPanel.scss b/res/css/structures/_LeftPanel.scss
index f254ca3226..738b77684f 100644
--- a/res/css/structures/_LeftPanel.scss
+++ b/res/css/structures/_LeftPanel.scss
@@ -130,7 +130,7 @@ $roomListCollapsedWidth: 68px;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $secondary-fg-color;
+ background: $secondary-content;
}
}
@@ -153,7 +153,7 @@ $roomListCollapsedWidth: 68px;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $secondary-fg-color;
+ background: $secondary-content;
}
&.mx_LeftPanel_exploreButton_space::before {
diff --git a/res/css/structures/_RoomDirectory.scss b/res/css/structures/_RoomDirectory.scss
index d9284a2aae..fb0f7d10e1 100644
--- a/res/css/structures/_RoomDirectory.scss
+++ b/res/css/structures/_RoomDirectory.scss
@@ -78,7 +78,7 @@ limitations under the License.
margin: 40px auto 60px;
font-size: $font-14px;
line-height: $font-20px;
- color: $secondary-fg-color;
+ color: $secondary-content;
max-width: 464px; // easier reading
}
diff --git a/res/css/structures/_RoomSearch.scss b/res/css/structures/_RoomSearch.scss
index ecbf5e3992..6d197731d0 100644
--- a/res/css/structures/_RoomSearch.scss
+++ b/res/css/structures/_RoomSearch.scss
@@ -33,7 +33,7 @@ limitations under the License.
height: 16px;
mask: url('$(res)/img/element-icons/roomlist/search.svg');
mask-repeat: no-repeat;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
margin-left: 7px;
}
@@ -53,7 +53,7 @@ limitations under the License.
}
&.mx_RoomSearch_hasQuery {
- border-color: $secondary-fg-color;
+ border-color: $secondary-content;
}
&.mx_RoomSearch_focused {
@@ -71,7 +71,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
margin-right: 8px;
}
}
diff --git a/res/css/structures/_SpacePanel.scss b/res/css/structures/_SpacePanel.scss
index 399baf10bb..fef24f2947 100644
--- a/res/css/structures/_SpacePanel.scss
+++ b/res/css/structures/_SpacePanel.scss
@@ -20,7 +20,7 @@ $gutterSize: 16px;
$activeBorderTransparentGap: 1px;
$activeBackgroundColor: $roomtile-selected-bg-color;
-$activeBorderColor: $secondary-fg-color;
+$activeBorderColor: $secondary-content;
.mx_SpacePanel {
flex: 0 0 auto;
diff --git a/res/css/structures/_SpaceRoomDirectory.scss b/res/css/structures/_SpaceRoomDirectory.scss
index 30d0b7991d..e1cc579f6d 100644
--- a/res/css/structures/_SpaceRoomDirectory.scss
+++ b/res/css/structures/_SpaceRoomDirectory.scss
@@ -52,7 +52,7 @@ limitations under the License.
> div {
font-weight: 400;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-15px;
line-height: $font-24px;
}
@@ -74,7 +74,7 @@ limitations under the License.
> div {
font-size: $font-15px;
line-height: $font-24px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
@@ -143,7 +143,7 @@ limitations under the License.
margin-left: 8px;
font-size: $font-15px;
line-height: $font-24px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
@@ -235,7 +235,7 @@ limitations under the License.
.mx_SpaceRoomDirectory_roomTile_info {
font-size: $font-14px;
line-height: $font-18px;
- color: $secondary-fg-color;
+ color: $secondary-content;
grid-row: 2;
grid-column: 1/3;
display: -webkit-box;
@@ -300,7 +300,7 @@ limitations under the License.
font-weight: normal;
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
diff --git a/res/css/structures/_SpaceRoomView.scss b/res/css/structures/_SpaceRoomView.scss
index d1758ce757..d3a61bd4d1 100644
--- a/res/css/structures/_SpaceRoomView.scss
+++ b/res/css/structures/_SpaceRoomView.scss
@@ -32,7 +32,7 @@ $SpaceRoomViewInnerWidth: 428px;
}
> span {
- color: $secondary-fg-color;
+ color: $secondary-content;
}
&::before {
@@ -78,7 +78,7 @@ $SpaceRoomViewInnerWidth: 428px;
.mx_SpaceRoomView_description {
font-size: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-top: 12px;
margin-bottom: 24px;
max-width: $SpaceRoomViewInnerWidth;
@@ -176,7 +176,7 @@ $SpaceRoomViewInnerWidth: 428px;
mask-position: center;
mask-size: contain;
mask-image: url('$(res)/img/element-icons/room/room-summary.svg');
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
}
@@ -207,7 +207,7 @@ $SpaceRoomViewInnerWidth: 428px;
.mx_SpaceRoomView_preview_inviter_mxid {
line-height: $font-24px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
}
@@ -224,7 +224,7 @@ $SpaceRoomViewInnerWidth: 428px;
.mx_SpaceRoomView_preview_topic {
font-size: $font-14px;
line-height: $font-22px;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin: 20px 0;
max-height: 160px;
overflow-y: auto;
@@ -257,7 +257,7 @@ $SpaceRoomViewInnerWidth: 428px;
.mx_SpaceRoomView_landing_name {
margin: 24px 0 16px;
font-size: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
> span {
display: inline-block;
@@ -388,7 +388,7 @@ $SpaceRoomViewInnerWidth: 428px;
width: 432px;
border-radius: 8px;
background-color: $info-plinth-bg-color;
- color: $secondary-fg-color;
+ color: $secondary-content;
box-sizing: border-box;
> h3 {
@@ -415,7 +415,7 @@ $SpaceRoomViewInnerWidth: 428px;
position: absolute;
top: 14px;
left: 14px;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
}
@@ -438,7 +438,7 @@ $SpaceRoomViewInnerWidth: 428px;
}
.mx_SpaceRoomView_inviteTeammates_buttons {
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-top: 28px;
.mx_AccessibleButton {
@@ -454,7 +454,7 @@ $SpaceRoomViewInnerWidth: 428px;
width: 24px;
top: 0;
left: 0;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-repeat: no-repeat;
mask-position: center;
mask-size: contain;
@@ -473,7 +473,7 @@ $SpaceRoomViewInnerWidth: 428px;
}
.mx_SpaceRoomView_info {
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-15px;
line-height: $font-24px;
margin: 20px 0;
diff --git a/res/css/structures/_ToastContainer.scss b/res/css/structures/_ToastContainer.scss
index 8aed21e36c..6024df5dc0 100644
--- a/res/css/structures/_ToastContainer.scss
+++ b/res/css/structures/_ToastContainer.scss
@@ -163,7 +163,7 @@ limitations under the License.
}
.mx_Toast_detail {
- color: $secondary-fg-color;
+ color: $secondary-content;
}
.mx_Toast_deviceID {
diff --git a/res/css/views/avatars/_DecoratedRoomAvatar.scss b/res/css/views/avatars/_DecoratedRoomAvatar.scss
index 257b512579..4922068462 100644
--- a/res/css/views/avatars/_DecoratedRoomAvatar.scss
+++ b/res/css/views/avatars/_DecoratedRoomAvatar.scss
@@ -47,7 +47,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $secondary-fg-color;
+ background: $secondary-content;
mask-image: url('$(res)/img/globe.svg');
}
diff --git a/res/css/views/beta/_BetaCard.scss b/res/css/views/beta/_BetaCard.scss
index e7aa34487b..ff6910852c 100644
--- a/res/css/views/beta/_BetaCard.scss
+++ b/res/css/views/beta/_BetaCard.scss
@@ -40,7 +40,7 @@ limitations under the License.
.mx_BetaCard_caption {
font-size: $font-15px;
line-height: $font-20px;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-bottom: 20px;
}
@@ -54,7 +54,7 @@ limitations under the License.
.mx_BetaCard_disclaimer {
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-top: 20px;
}
}
@@ -78,7 +78,7 @@ limitations under the License.
margin-top: 4px;
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
}
diff --git a/res/css/views/dialogs/_AddExistingToSpaceDialog.scss b/res/css/views/dialogs/_AddExistingToSpaceDialog.scss
index 2758533efc..444b29c9bf 100644
--- a/res/css/views/dialogs/_AddExistingToSpaceDialog.scss
+++ b/res/css/views/dialogs/_AddExistingToSpaceDialog.scss
@@ -44,7 +44,7 @@ limitations under the License.
> h3 {
margin: 0;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-12px;
font-weight: $font-semi-bold;
line-height: $font-15px;
@@ -66,7 +66,7 @@ limitations under the License.
flex-grow: 1;
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
.mx_ProgressBar {
height: 8px;
@@ -188,7 +188,7 @@ limitations under the License.
padding-left: 0;
flex: unset;
height: unset;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-15px;
line-height: $font-24px;
@@ -221,7 +221,7 @@ limitations under the License.
}
.mx_SubspaceSelector_onlySpace {
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-15px;
line-height: $font-24px;
}
diff --git a/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss b/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
index 74a0e9dd8a..6ff328f6ab 100644
--- a/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
+++ b/res/css/views/dialogs/_CreateSpaceFromCommunityDialog.scss
@@ -73,7 +73,7 @@ limitations under the License.
flex-grow: 1;
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
.mx_ProgressBar {
height: 8px;
diff --git a/res/css/views/dialogs/_CreateSubspaceDialog.scss b/res/css/views/dialogs/_CreateSubspaceDialog.scss
index 9afd5d438f..1ed10df35c 100644
--- a/res/css/views/dialogs/_CreateSubspaceDialog.scss
+++ b/res/css/views/dialogs/_CreateSubspaceDialog.scss
@@ -57,7 +57,7 @@ limitations under the License.
flex-grow: 1;
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
> * {
vertical-align: middle;
diff --git a/res/css/views/dialogs/_ForwardDialog.scss b/res/css/views/dialogs/_ForwardDialog.scss
index 898b79725f..da8ce3de5b 100644
--- a/res/css/views/dialogs/_ForwardDialog.scss
+++ b/res/css/views/dialogs/_ForwardDialog.scss
@@ -25,7 +25,7 @@ limitations under the License.
> h3 {
margin: 0 0 6px;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-12px;
font-weight: $font-semi-bold;
line-height: $font-15px;
diff --git a/res/css/views/dialogs/_HostSignupDialog.scss b/res/css/views/dialogs/_HostSignupDialog.scss
index 52e68da2af..d8a6652a39 100644
--- a/res/css/views/dialogs/_HostSignupDialog.scss
+++ b/res/css/views/dialogs/_HostSignupDialog.scss
@@ -74,7 +74,7 @@ limitations under the License.
}
.mx_HostSignupDialog_text_light {
- color: $secondary-fg-color;
+ color: $secondary-content;
}
.mx_HostSignup_maximize_button {
diff --git a/res/css/views/dialogs/_InviteDialog.scss b/res/css/views/dialogs/_InviteDialog.scss
index ca7f7d74ac..55afb4aecb 100644
--- a/res/css/views/dialogs/_InviteDialog.scss
+++ b/res/css/views/dialogs/_InviteDialog.scss
@@ -418,7 +418,7 @@ limitations under the License.
> h4 {
font-size: $font-15px;
line-height: $font-24px;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-weight: normal;
}
diff --git a/res/css/views/dialogs/_JoinRuleDropdown.scss b/res/css/views/dialogs/_JoinRuleDropdown.scss
index 7615156c8b..91691cf53b 100644
--- a/res/css/views/dialogs/_JoinRuleDropdown.scss
+++ b/res/css/views/dialogs/_JoinRuleDropdown.scss
@@ -44,7 +44,7 @@ limitations under the License.
top: 8px;
mask-repeat: no-repeat;
mask-position: center;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
}
}
diff --git a/res/css/views/dialogs/_LeaveSpaceDialog.scss b/res/css/views/dialogs/_LeaveSpaceDialog.scss
index 6d96a957b3..0d85a87faf 100644
--- a/res/css/views/dialogs/_LeaveSpaceDialog.scss
+++ b/res/css/views/dialogs/_LeaveSpaceDialog.scss
@@ -63,7 +63,7 @@ limitations under the License.
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
&::before {
content: '';
@@ -72,7 +72,7 @@ limitations under the License.
top: calc(50% - 8px); // vertical centering
height: 16px;
width: 16px;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-repeat: no-repeat;
mask-size: contain;
mask-image: url('$(res)/img/element-icons/room/room-summary.svg');
diff --git a/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss b/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
index d5ef57e096..587e7ef9d3 100644
--- a/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
+++ b/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
@@ -52,7 +52,7 @@ limitations under the License.
> h3 {
margin: 0;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-12px;
font-weight: $font-semi-bold;
line-height: $font-15px;
@@ -113,7 +113,7 @@ limitations under the License.
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
&::before {
content: '';
@@ -122,7 +122,7 @@ limitations under the License.
top: calc(50% - 8px); // vertical centering
height: 16px;
width: 16px;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-repeat: no-repeat;
mask-size: contain;
mask-image: url('$(res)/img/element-icons/room/room-summary.svg');
diff --git a/res/css/views/dialogs/_ServerPickerDialog.scss b/res/css/views/dialogs/_ServerPickerDialog.scss
index b01b49d7af..9a05751f91 100644
--- a/res/css/views/dialogs/_ServerPickerDialog.scss
+++ b/res/css/views/dialogs/_ServerPickerDialog.scss
@@ -22,7 +22,7 @@ limitations under the License.
margin-bottom: 0;
> p {
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-14px;
margin: 16px 0;
@@ -38,7 +38,7 @@ limitations under the License.
> h4 {
font-size: $font-15px;
font-weight: $font-semi-bold;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-left: 8px;
}
diff --git a/res/css/views/dialogs/_SpaceSettingsDialog.scss b/res/css/views/dialogs/_SpaceSettingsDialog.scss
index c5e8e891e6..a1fa9d52a8 100644
--- a/res/css/views/dialogs/_SpaceSettingsDialog.scss
+++ b/res/css/views/dialogs/_SpaceSettingsDialog.scss
@@ -56,7 +56,7 @@ limitations under the License.
& + span {
font-size: $font-15px;
line-height: $font-18px;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-left: 26px;
}
}
diff --git a/res/css/views/elements/_InviteReason.scss b/res/css/views/elements/_InviteReason.scss
index 2c2e5687e6..8024ed59a3 100644
--- a/res/css/views/elements/_InviteReason.scss
+++ b/res/css/views/elements/_InviteReason.scss
@@ -32,12 +32,12 @@ limitations under the License.
justify-content: center;
align-items: center;
cursor: pointer;
- color: $secondary-fg-color;
+ color: $secondary-content;
&::before {
content: "";
margin-right: 8px;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-image: url('$(res)/img/feather-customised/eye.svg');
display: inline-block;
width: 18px;
diff --git a/res/css/views/elements/_MiniAvatarUploader.scss b/res/css/views/elements/_MiniAvatarUploader.scss
index 7ba86de16f..46ffd9a01c 100644
--- a/res/css/views/elements/_MiniAvatarUploader.scss
+++ b/res/css/views/elements/_MiniAvatarUploader.scss
@@ -45,7 +45,7 @@ limitations under the License.
height: 100%;
width: 100%;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-position: center;
mask-repeat: no-repeat;
mask-image: url('$(res)/img/element-icons/camera.svg');
diff --git a/res/css/views/messages/_CallEvent.scss b/res/css/views/messages/_CallEvent.scss
index 0c1b41ca38..d13691fe70 100644
--- a/res/css/views/messages/_CallEvent.scss
+++ b/res/css/views/messages/_CallEvent.scss
@@ -71,7 +71,7 @@ limitations under the License.
.mx_CallEvent_type {
font-weight: 400;
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: 1.2rem;
line-height: $font-13px;
display: flex;
@@ -100,7 +100,7 @@ limitations under the License.
display: flex;
flex-direction: row;
align-items: center;
- color: $secondary-fg-color;
+ color: $secondary-content;
margin-right: 16px;
.mx_CallEvent_content_button {
diff --git a/res/css/views/messages/_MessageActionBar.scss b/res/css/views/messages/_MessageActionBar.scss
index 608be24264..c6983ae631 100644
--- a/res/css/views/messages/_MessageActionBar.scss
+++ b/res/css/views/messages/_MessageActionBar.scss
@@ -77,7 +77,7 @@ limitations under the License.
mask-size: 18px;
mask-repeat: no-repeat;
mask-position: center;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
.mx_MessageActionBar_maskButton:hover::after {
diff --git a/res/css/views/right_panel/_BaseCard.scss b/res/css/views/right_panel/_BaseCard.scss
index 9a5a59bda8..edb3d1a252 100644
--- a/res/css/views/right_panel/_BaseCard.scss
+++ b/res/css/views/right_panel/_BaseCard.scss
@@ -145,7 +145,7 @@ limitations under the License.
justify-content: space-around;
.mx_AccessibleButton_kind_secondary {
- color: $secondary-fg-color;
+ color: $secondary-content;
background-color: rgba(141, 151, 165, 0.2);
font-weight: $font-semi-bold;
font-size: $font-14px;
diff --git a/res/css/views/right_panel/_PinnedMessagesCard.scss b/res/css/views/right_panel/_PinnedMessagesCard.scss
index d27e639dd6..f3861a3dec 100644
--- a/res/css/views/right_panel/_PinnedMessagesCard.scss
+++ b/res/css/views/right_panel/_PinnedMessagesCard.scss
@@ -83,7 +83,7 @@ limitations under the License.
> span {
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
}
diff --git a/res/css/views/right_panel/_RoomSummaryCard.scss b/res/css/views/right_panel/_RoomSummaryCard.scss
index 3b2045422d..aaaf225d16 100644
--- a/res/css/views/right_panel/_RoomSummaryCard.scss
+++ b/res/css/views/right_panel/_RoomSummaryCard.scss
@@ -27,7 +27,7 @@ limitations under the License.
.mx_RoomSummaryCard_alias {
font-size: $font-13px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
h2, .mx_RoomSummaryCard_alias {
diff --git a/res/css/views/right_panel/_WidgetCard.scss b/res/css/views/right_panel/_WidgetCard.scss
index a90e744a5a..824f1fcb2f 100644
--- a/res/css/views/right_panel/_WidgetCard.scss
+++ b/res/css/views/right_panel/_WidgetCard.scss
@@ -51,7 +51,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-image: url('$(res)/img/element-icons/room/ellipsis.svg');
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
}
}
}
diff --git a/res/css/views/rooms/_NewRoomIntro.scss b/res/css/views/rooms/_NewRoomIntro.scss
index e0cccfa885..f0e471d384 100644
--- a/res/css/views/rooms/_NewRoomIntro.scss
+++ b/res/css/views/rooms/_NewRoomIntro.scss
@@ -67,6 +67,6 @@ limitations under the License.
> p {
margin: 0;
font-size: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
}
diff --git a/res/css/views/rooms/_PinnedEventTile.scss b/res/css/views/rooms/_PinnedEventTile.scss
index 15b3c16faa..07978a8f65 100644
--- a/res/css/views/rooms/_PinnedEventTile.scss
+++ b/res/css/views/rooms/_PinnedEventTile.scss
@@ -67,7 +67,7 @@ limitations under the License.
//left: 0;
height: inherit;
width: inherit;
- background: $secondary-fg-color;
+ background: $secondary-content;
mask-position: center;
mask-size: 8px;
mask-repeat: no-repeat;
@@ -87,7 +87,7 @@ limitations under the License.
.mx_PinnedEventTile_timestamp {
font-size: inherit;
line-height: inherit;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
.mx_AccessibleButton_kind_link {
diff --git a/res/css/views/rooms/_RoomList.scss b/res/css/views/rooms/_RoomList.scss
index 5ae6953b50..7d967661a6 100644
--- a/res/css/views/rooms/_RoomList.scss
+++ b/res/css/views/rooms/_RoomList.scss
@@ -64,7 +64,7 @@ limitations under the License.
position: absolute;
top: 8px;
left: 8px;
- background: $secondary-fg-color;
+ background: $secondary-content;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
diff --git a/res/css/views/rooms/_VoiceRecordComposerTile.scss b/res/css/views/rooms/_VoiceRecordComposerTile.scss
index 8196d5c67a..69fe292c0a 100644
--- a/res/css/views/rooms/_VoiceRecordComposerTile.scss
+++ b/res/css/views/rooms/_VoiceRecordComposerTile.scss
@@ -48,7 +48,7 @@ limitations under the License.
.mx_VoiceRecordComposerTile_uploadingState {
margin-right: 10px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
.mx_VoiceRecordComposerTile_failedState {
diff --git a/res/css/views/settings/_Notifications.scss b/res/css/views/settings/_Notifications.scss
index b3a91dc5db..a0e46c0071 100644
--- a/res/css/views/settings/_Notifications.scss
+++ b/res/css/views/settings/_Notifications.scss
@@ -34,7 +34,7 @@ limitations under the License.
}
tr > th:nth-child(n + 2) {
- color: $secondary-fg-color;
+ color: $secondary-content;
font-size: $font-12px;
vertical-align: middle;
width: 66px;
diff --git a/res/css/views/settings/tabs/_SettingsTab.scss b/res/css/views/settings/tabs/_SettingsTab.scss
index 1e4fed6580..5aa9db7e86 100644
--- a/res/css/views/settings/tabs/_SettingsTab.scss
+++ b/res/css/views/settings/tabs/_SettingsTab.scss
@@ -82,7 +82,7 @@ limitations under the License.
margin-top: 4px;
font-size: $font-12px;
line-height: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
}
.mx_SettingsTab_section .mx_SettingsFlag .mx_ToggleSwitch {
diff --git a/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss b/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss
index 202faae078..8fd0f14418 100644
--- a/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss
+++ b/res/css/views/settings/tabs/room/_SecurityRoomSettingsTab.scss
@@ -22,7 +22,7 @@ limitations under the License.
.mx_SecurityRoomSettingsTab_spacesWithAccess {
> h4 {
- color: $secondary-fg-color;
+ color: $secondary-content;
font-weight: $font-semi-bold;
font-size: $font-12px;
line-height: $font-15px;
@@ -33,7 +33,7 @@ limitations under the License.
font-weight: 500;
font-size: $font-14px;
line-height: 32px; // matches height of avatar for v-align
- color: $secondary-fg-color;
+ color: $secondary-content;
display: inline-block;
img.mx_RoomAvatar_isSpaceRoom,
@@ -100,7 +100,7 @@ limitations under the License.
margin-bottom: 16px;
font-size: $font-15px;
line-height: $font-24px;
- color: $secondary-fg-color;
+ color: $secondary-content;
& + .mx_RadioButton {
border-top: 1px solid $menu-border-color;
diff --git a/res/css/views/spaces/_SpaceCreateMenu.scss b/res/css/views/spaces/_SpaceCreateMenu.scss
index e4d5170924..7615ebe2d3 100644
--- a/res/css/views/spaces/_SpaceCreateMenu.scss
+++ b/res/css/views/spaces/_SpaceCreateMenu.scss
@@ -40,7 +40,8 @@ $spacePanelWidth: 71px;
> p {
font-size: $font-15px;
- color: $secondary-fg-color;
+ color: $secondary-content;
+ margin: 0;
}
.mx_SpaceFeedbackPrompt {
@@ -108,7 +109,7 @@ $spacePanelWidth: 71px;
line-height: $font-24px;
> span {
- color: $secondary-fg-color;
+ color: $secondary-content;
position: relative;
font-size: inherit;
line-height: inherit;
diff --git a/res/css/views/voip/_CallViewHeader.scss b/res/css/views/voip/_CallViewHeader.scss
index 014cfce478..0575f4f535 100644
--- a/res/css/views/voip/_CallViewHeader.scss
+++ b/res/css/views/voip/_CallViewHeader.scss
@@ -53,7 +53,7 @@ limitations under the License.
height: 20px;
width: 20px;
vertical-align: middle;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-repeat: no-repeat;
mask-size: contain;
mask-position: center;
@@ -90,7 +90,7 @@ limitations under the License.
.mx_CallViewHeader_callTypeSmall {
font-size: 12px;
- color: $secondary-fg-color;
+ color: $secondary-content;
line-height: initial;
height: 15px;
overflow: hidden;
@@ -113,7 +113,7 @@ limitations under the License.
height: 16px;
width: 16px;
- background-color: $secondary-fg-color;
+ background-color: $secondary-content;
mask-repeat: no-repeat;
mask-size: contain;
mask-position: center;
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 885e73cee1..3b5ad93358 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -33,7 +33,6 @@ $room-highlight-color: #343a46;
$muted-fg-color: $header-panel-text-primary-color;
// additional text colors
-$secondary-fg-color: $secondary-content;
$tertiary-fg-color: $tertiary-content;
// used for dialog box text
@@ -139,7 +138,7 @@ $roomsublist-skeleton-ui-bg: linear-gradient(180deg, #3e444c 0%, #3e444c00 100%)
$groupFilterPanel-divider-color: $roomlist-header-color;
-$roomtile-preview-color: $secondary-fg-color;
+$roomtile-preview-color: $secondary-content;
$roomtile-default-badge-bg-color: #61708b;
$roomtile-selected-bg-color: rgba(141, 151, 165, 0.2);
@@ -217,10 +216,10 @@ $breadcrumb-placeholder-bg-color: #272c35;
$user-tile-hover-bg-color: $header-panel-bg-color;
-$message-body-panel-fg-color: $secondary-fg-color;
+$message-body-panel-fg-color: $secondary-content;
$message-body-panel-bg-color: $quinary-content;
-$message-body-panel-icon-fg-color: $secondary-fg-color;
-$message-body-panel-icon-bg-color: $system; // "System Dark"
+$message-body-panel-icon-bg-color: $system;
+$message-body-panel-icon-fg-color: $secondary-content;
$voice-record-stop-border-color: $quaternary-content;
$voice-record-waveform-incomplete-fg-color: $quaternary-content;
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index da9b3cb1ef..4cb182f99d 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -37,7 +37,6 @@ $accent-color: $accent;
$accent-bg-color: rgba(3, 179, 129, 0.16);
$notice-primary-color: #ff4b55;
$notice-primary-bg-color: rgba(255, 75, 85, 0.16);
-$secondary-fg-color: $secondary-content;
$tertiary-fg-color: #8D99A5;
$header-panel-bg-color: #f3f8fd;
@@ -200,7 +199,7 @@ $roomsublist-skeleton-ui-bg: linear-gradient(180deg, #ffffff 0%, #ffffff00 100%)
$groupFilterPanel-divider-color: $roomlist-header-color;
-$roomtile-preview-color: $secondary-fg-color;
+$roomtile-preview-color: $secondary-content;
$roomtile-default-badge-bg-color: #61708b;
$roomtile-selected-bg-color: #FFF;
@@ -339,10 +338,10 @@ $breadcrumb-placeholder-bg-color: #e8eef5;
$user-tile-hover-bg-color: $header-panel-bg-color;
-$message-body-panel-fg-color: $secondary-fg-color;
+$message-body-panel-fg-color: $secondary-content;
$message-body-panel-bg-color: $quinary-content;
-$message-body-panel-icon-fg-color: $secondary-fg-color;
$message-body-panel-icon-bg-color: $system;
+$message-body-panel-icon-fg-color: $secondary-content;
// These two don't change between themes. They are the $warning-color, but we don't
// want custom themes to affect them by accident.
From 8b59bf3d18f7fa46e81d3d0f90b0f1461382a0dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:53:54 +0200
Subject: [PATCH 100/619] $tertiary-fg-color -> $tertiary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/structures/_NotificationPanel.scss | 2 +-
res/css/structures/_RoomSearch.scss | 2 +-
res/css/structures/_SpaceRoomDirectory.scss | 4 ++--
res/css/structures/_SpaceRoomView.scss | 6 +++---
res/css/structures/_TabbedView.scss | 2 +-
res/css/structures/_UserMenu.scss | 2 +-
res/css/views/audio_messages/_SeekBar.scss | 8 ++++----
res/css/views/dialogs/_FeedbackDialog.scss | 2 +-
res/css/views/dialogs/_InviteDialog.scss | 2 +-
.../views/dialogs/_ManageRestrictedJoinRuleDialog.scss | 2 +-
res/css/views/dialogs/_RegistrationEmailPromptDialog.scss | 2 +-
res/css/views/elements/_FacePile.scss | 4 ++--
res/css/views/elements/_ServerPicker.scss | 2 +-
res/css/views/elements/_TagComposer.scss | 2 +-
res/css/views/messages/_CallEvent.scss | 4 ++--
res/css/views/messages/_ReactionsRow.scss | 4 ++--
res/css/views/right_panel/_BaseCard.scss | 2 +-
res/css/views/right_panel/_RoomSummaryCard.scss | 2 +-
res/css/views/rooms/_EventTile.scss | 2 +-
res/css/views/spaces/_SpaceBasicSettings.scss | 2 +-
res/css/views/spaces/_SpaceCreateMenu.scss | 2 +-
res/css/views/toasts/_IncomingCallToast.scss | 6 +++---
res/themes/dark/css/_dark.scss | 5 +----
res/themes/light/css/_light.scss | 5 ++---
24 files changed, 36 insertions(+), 40 deletions(-)
diff --git a/res/css/structures/_NotificationPanel.scss b/res/css/structures/_NotificationPanel.scss
index 5ef9be31d2..68e1dd6a9a 100644
--- a/res/css/structures/_NotificationPanel.scss
+++ b/res/css/structures/_NotificationPanel.scss
@@ -49,7 +49,7 @@ limitations under the License.
bottom: 0;
left: 0;
right: 0;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
height: 1px;
opacity: 0.4;
content: '';
diff --git a/res/css/structures/_RoomSearch.scss b/res/css/structures/_RoomSearch.scss
index 6d197731d0..80c1a044b3 100644
--- a/res/css/structures/_RoomSearch.scss
+++ b/res/css/structures/_RoomSearch.scss
@@ -48,7 +48,7 @@ limitations under the License.
line-height: $font-16px;
&:not(.mx_RoomSearch_inputExpanded)::placeholder {
- color: $tertiary-fg-color !important; // !important to override default app-wide styles
+ color: $tertiary-content !important; // !important to override default app-wide styles
}
}
diff --git a/res/css/structures/_SpaceRoomDirectory.scss b/res/css/structures/_SpaceRoomDirectory.scss
index e1cc579f6d..88676d06ac 100644
--- a/res/css/structures/_SpaceRoomDirectory.scss
+++ b/res/css/structures/_SpaceRoomDirectory.scss
@@ -171,7 +171,7 @@ limitations under the License.
width: 16px;
mask-repeat: no-repeat;
mask-position: center;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-size: 16px;
transform: rotate(270deg);
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
@@ -214,7 +214,7 @@ limitations under the License.
.mx_InfoTooltip {
display: inline;
margin-left: 12px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
font-size: $font-12px;
line-height: $font-15px;
diff --git a/res/css/structures/_SpaceRoomView.scss b/res/css/structures/_SpaceRoomView.scss
index d3a61bd4d1..49d6b61f49 100644
--- a/res/css/structures/_SpaceRoomView.scss
+++ b/res/css/structures/_SpaceRoomView.scss
@@ -45,7 +45,7 @@ $SpaceRoomViewInnerWidth: 428px;
mask-position: center;
mask-repeat: no-repeat;
mask-size: 24px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
}
&:hover {
@@ -330,7 +330,7 @@ $SpaceRoomViewInnerWidth: 428px;
top: 0;
height: 24px;
width: 24px;
- background: $tertiary-fg-color;
+ background: $tertiary-content;
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
@@ -492,7 +492,7 @@ $SpaceRoomViewInnerWidth: 428px;
left: -2px;
mask-position: center;
mask-repeat: no-repeat;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
}
}
diff --git a/res/css/structures/_TabbedView.scss b/res/css/structures/_TabbedView.scss
index 833450a25b..e185197f25 100644
--- a/res/css/structures/_TabbedView.scss
+++ b/res/css/structures/_TabbedView.scss
@@ -80,7 +80,7 @@ limitations under the License.
.mx_TabbedView_tabLabel_text {
font-size: 15px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
}
diff --git a/res/css/structures/_UserMenu.scss b/res/css/structures/_UserMenu.scss
index 51ec4d23e3..6cb9aa0bf3 100644
--- a/res/css/structures/_UserMenu.scss
+++ b/res/css/structures/_UserMenu.scss
@@ -58,7 +58,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $tertiary-fg-color;
+ background: $tertiary-content;
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
}
diff --git a/res/css/views/audio_messages/_SeekBar.scss b/res/css/views/audio_messages/_SeekBar.scss
index 783a3c50ee..03449d009b 100644
--- a/res/css/views/audio_messages/_SeekBar.scss
+++ b/res/css/views/audio_messages/_SeekBar.scss
@@ -42,7 +42,7 @@ limitations under the License.
width: 8px;
height: 8px;
border-radius: 8px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
cursor: pointer;
}
@@ -50,7 +50,7 @@ limitations under the License.
width: 8px;
height: 8px;
border-radius: 8px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
cursor: pointer;
// Firefox adds a border on the thumb
@@ -63,7 +63,7 @@ limitations under the License.
// in firefox, so it's just wasted CPU/GPU time.
&::before { // ::before to ensure it ends up under the thumb
content: '';
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
// Absolute positioning to ensure it overlaps with the existing bar
position: absolute;
@@ -81,7 +81,7 @@ limitations under the License.
// This is firefox's built-in support for the above, with 100% less hacks.
&::-moz-range-progress {
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
height: 1px;
}
diff --git a/res/css/views/dialogs/_FeedbackDialog.scss b/res/css/views/dialogs/_FeedbackDialog.scss
index fd225dd882..74733f7220 100644
--- a/res/css/views/dialogs/_FeedbackDialog.scss
+++ b/res/css/views/dialogs/_FeedbackDialog.scss
@@ -33,7 +33,7 @@ limitations under the License.
padding-left: 52px;
> p {
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
.mx_AccessibleButton_kind_link {
diff --git a/res/css/views/dialogs/_InviteDialog.scss b/res/css/views/dialogs/_InviteDialog.scss
index 55afb4aecb..3a2918f9ec 100644
--- a/res/css/views/dialogs/_InviteDialog.scss
+++ b/res/css/views/dialogs/_InviteDialog.scss
@@ -439,7 +439,7 @@ limitations under the License.
margin-left: 6px;
font-size: $font-12px;
line-height: $font-15px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
}
diff --git a/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss b/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
index 587e7ef9d3..9a05e7f20a 100644
--- a/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
+++ b/res/css/views/dialogs/_ManageRestrictedJoinRuleDialog.scss
@@ -85,7 +85,7 @@ limitations under the License.
margin-top: 8px;
font-size: $font-12px;
line-height: $font-15px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
.mx_Checkbox {
diff --git a/res/css/views/dialogs/_RegistrationEmailPromptDialog.scss b/res/css/views/dialogs/_RegistrationEmailPromptDialog.scss
index 31fc6d7a04..02c89e2e42 100644
--- a/res/css/views/dialogs/_RegistrationEmailPromptDialog.scss
+++ b/res/css/views/dialogs/_RegistrationEmailPromptDialog.scss
@@ -19,7 +19,7 @@ limitations under the License.
.mx_Dialog_content {
margin-bottom: 24px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
.mx_Dialog_primary {
diff --git a/res/css/views/elements/_FacePile.scss b/res/css/views/elements/_FacePile.scss
index 5f6f473081..875e0e34d5 100644
--- a/res/css/views/elements/_FacePile.scss
+++ b/res/css/views/elements/_FacePile.scss
@@ -47,7 +47,7 @@ limitations under the License.
left: 0;
height: inherit;
width: inherit;
- background: $tertiary-fg-color;
+ background: $tertiary-content;
mask-position: center;
mask-size: 20px;
mask-repeat: no-repeat;
@@ -60,6 +60,6 @@ limitations under the License.
margin-left: 12px;
font-size: $font-14px;
line-height: $font-24px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
}
diff --git a/res/css/views/elements/_ServerPicker.scss b/res/css/views/elements/_ServerPicker.scss
index 188eb5d655..d828d7cb88 100644
--- a/res/css/views/elements/_ServerPicker.scss
+++ b/res/css/views/elements/_ServerPicker.scss
@@ -74,7 +74,7 @@ limitations under the License.
.mx_ServerPicker_desc {
margin-top: -12px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
grid-column: 1 / 2;
grid-row: 3;
margin-bottom: 16px;
diff --git a/res/css/views/elements/_TagComposer.scss b/res/css/views/elements/_TagComposer.scss
index 2ffd601765..2712ad8e90 100644
--- a/res/css/views/elements/_TagComposer.scss
+++ b/res/css/views/elements/_TagComposer.scss
@@ -50,7 +50,7 @@ limitations under the License.
&::before {
content: '';
border-radius: 20px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
opacity: 0.15;
position: absolute;
top: 0;
diff --git a/res/css/views/messages/_CallEvent.scss b/res/css/views/messages/_CallEvent.scss
index d13691fe70..f641cd44a5 100644
--- a/res/css/views/messages/_CallEvent.scss
+++ b/res/css/views/messages/_CallEvent.scss
@@ -87,7 +87,7 @@ limitations under the License.
position: absolute;
height: 13px;
width: 13px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-repeat: no-repeat;
mask-size: contain;
}
@@ -144,7 +144,7 @@ limitations under the License.
height: 16px;
width: 16px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-repeat: no-repeat;
mask-size: contain;
mask-position: center;
diff --git a/res/css/views/messages/_ReactionsRow.scss b/res/css/views/messages/_ReactionsRow.scss
index 50cafe3cda..1b0b847932 100644
--- a/res/css/views/messages/_ReactionsRow.scss
+++ b/res/css/views/messages/_ReactionsRow.scss
@@ -36,7 +36,7 @@ limitations under the License.
mask-size: 16px;
mask-repeat: no-repeat;
mask-position: center;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-image: url('$(res)/img/element-icons/room/message-bar/emoji.svg');
}
@@ -64,7 +64,7 @@ limitations under the License.
vertical-align: middle;
&:link, &:visited {
- color: $tertiary-fg-color;
+ color: $tertiary-content;
}
&:hover {
diff --git a/res/css/views/right_panel/_BaseCard.scss b/res/css/views/right_panel/_BaseCard.scss
index edb3d1a252..8c1a55fe05 100644
--- a/res/css/views/right_panel/_BaseCard.scss
+++ b/res/css/views/right_panel/_BaseCard.scss
@@ -93,7 +93,7 @@ limitations under the License.
}
> h1 {
- color: $tertiary-fg-color;
+ color: $tertiary-content;
font-size: $font-12px;
font-weight: 500;
}
diff --git a/res/css/views/right_panel/_RoomSummaryCard.scss b/res/css/views/right_panel/_RoomSummaryCard.scss
index aaaf225d16..fcb83dfd7a 100644
--- a/res/css/views/right_panel/_RoomSummaryCard.scss
+++ b/res/css/views/right_panel/_RoomSummaryCard.scss
@@ -115,7 +115,7 @@ limitations under the License.
// as we will be applying it in its children
padding: 0;
height: auto;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
.mx_RoomSummaryCard_icon_app {
padding: 10px 48px 10px 12px; // based on typical mx_RoomSummaryCard_Button padding
diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss
index d9b6f03b4c..dcfb308ac4 100644
--- a/res/css/views/rooms/_EventTile.scss
+++ b/res/css/views/rooms/_EventTile.scss
@@ -161,7 +161,7 @@ $hover-select-border: 4px;
// up with the other read receipts
&::before {
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-repeat: no-repeat;
mask-position: center;
mask-size: 14px;
diff --git a/res/css/views/spaces/_SpaceBasicSettings.scss b/res/css/views/spaces/_SpaceBasicSettings.scss
index c73e0715dd..bff574ded3 100644
--- a/res/css/views/spaces/_SpaceBasicSettings.scss
+++ b/res/css/views/spaces/_SpaceBasicSettings.scss
@@ -27,7 +27,7 @@ limitations under the License.
position: relative;
height: 80px;
width: 80px;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
border-radius: 16px;
}
diff --git a/res/css/views/spaces/_SpaceCreateMenu.scss b/res/css/views/spaces/_SpaceCreateMenu.scss
index 7615ebe2d3..dfb1a2d9b4 100644
--- a/res/css/views/spaces/_SpaceCreateMenu.scss
+++ b/res/css/views/spaces/_SpaceCreateMenu.scss
@@ -77,7 +77,7 @@ $spacePanelWidth: 71px;
width: 28px;
top: 0;
left: 0;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
transform: rotate(90deg);
mask-repeat: no-repeat;
mask-position: 2px 3px;
diff --git a/res/css/views/toasts/_IncomingCallToast.scss b/res/css/views/toasts/_IncomingCallToast.scss
index 975628f948..98e9121f3a 100644
--- a/res/css/views/toasts/_IncomingCallToast.scss
+++ b/res/css/views/toasts/_IncomingCallToast.scss
@@ -36,7 +36,7 @@ limitations under the License.
.mx_CallEvent_type {
font-size: $font-12px;
line-height: $font-15px;
- color: $tertiary-fg-color;
+ color: $tertiary-content;
margin-top: 4px;
margin-bottom: 6px;
@@ -55,7 +55,7 @@ limitations under the License.
position: absolute;
height: inherit;
width: inherit;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-repeat: no-repeat;
mask-size: contain;
}
@@ -132,7 +132,7 @@ limitations under the License.
height: inherit;
width: inherit;
- background-color: $tertiary-fg-color;
+ background-color: $tertiary-content;
mask-repeat: no-repeat;
mask-size: contain;
mask-position: center;
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 3b5ad93358..b8bcdc2572 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -32,9 +32,6 @@ $room-highlight-color: #343a46;
// typical text (dark-on-white in light skin)
$muted-fg-color: $header-panel-text-primary-color;
-// additional text colors
-$tertiary-fg-color: $tertiary-content;
-
// used for dialog box text
$light-fg-color: $header-panel-text-secondary-color;
@@ -132,7 +129,7 @@ $dialpad-button-bg-color: $quinary-content;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(33, 38, 44, 0.90);
-$roomlist-header-color: $tertiary-fg-color;
+$roomlist-header-color: $tertiary-content;
$roomsublist-divider-color: $primary-content;
$roomsublist-skeleton-ui-bg: linear-gradient(180deg, #3e444c 0%, #3e444c00 100%);
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index 4cb182f99d..bce0195743 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -37,7 +37,6 @@ $accent-color: $accent;
$accent-bg-color: rgba(3, 179, 129, 0.16);
$notice-primary-color: #ff4b55;
$notice-primary-bg-color: rgba(255, 75, 85, 0.16);
-$tertiary-fg-color: #8D99A5;
$header-panel-bg-color: #f3f8fd;
// typical text (dark-on-white in light skin)
@@ -193,7 +192,7 @@ $dialpad-button-bg-color: $quinary-content;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(245, 245, 245, 0.90);
-$roomlist-header-color: $tertiary-fg-color;
+$roomlist-header-color: $tertiary-content;
$roomsublist-divider-color: $primary-content;
$roomsublist-skeleton-ui-bg: linear-gradient(180deg, #ffffff 0%, #ffffff00 100%);
@@ -350,7 +349,7 @@ $voice-record-live-circle-color: #ff4b55;
$voice-record-stop-border-color: $quinary-content;
$voice-record-waveform-incomplete-fg-color: $quaternary-content;
-$voice-record-icon-color: $tertiary-fg-color;
+$voice-record-icon-color: $tertiary-content;
$voice-playback-button-bg-color: $message-body-panel-icon-bg-color;
$voice-playback-button-fg-color: $message-body-panel-icon-fg-color;
From a3a6f73049d23822745ed2f06786f0fb571604d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 11:58:59 +0200
Subject: [PATCH 101/619] $avatar-bg-color -> $background
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/avatars/_BaseAvatar.scss | 2 +-
res/css/views/rooms/_BasicMessageComposer.scss | 2 +-
res/themes/dark/css/_dark.scss | 1 -
res/themes/light-custom/css/_custom.scss | 2 +-
res/themes/light/css/_light.scss | 1 -
5 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/res/css/views/avatars/_BaseAvatar.scss b/res/css/views/avatars/_BaseAvatar.scss
index cbddd97e18..486958887e 100644
--- a/res/css/views/avatars/_BaseAvatar.scss
+++ b/res/css/views/avatars/_BaseAvatar.scss
@@ -43,5 +43,5 @@ limitations under the License.
object-fit: cover;
border-radius: 125px;
vertical-align: top;
- background-color: $avatar-bg-color;
+ background-color: $background;
}
diff --git a/res/css/views/rooms/_BasicMessageComposer.scss b/res/css/views/rooms/_BasicMessageComposer.scss
index 752d3b0a54..a09078aa6d 100644
--- a/res/css/views/rooms/_BasicMessageComposer.scss
+++ b/res/css/views/rooms/_BasicMessageComposer.scss
@@ -54,7 +54,7 @@ limitations under the License.
width: $font-16px;
height: $font-16px;
margin-right: 0.24rem;
- background: var(--avatar-background), $avatar-bg-color;
+ background: var(--avatar-background), $background;
color: $avatar-initial-color;
background-repeat: no-repeat;
background-size: $font-16px;
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index b8bcdc2572..554c3b9e80 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -86,7 +86,6 @@ $menu-box-shadow-color: $background;
$menu-selected-color: $room-highlight-color;
$avatar-initial-color: #ffffff;
-$avatar-bg-color: $background;
$h3-color: $primary-content;
diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss
index f4685fe8fa..59c2fe9b2e 100644
--- a/res/themes/light-custom/css/_custom.scss
+++ b/res/themes/light-custom/css/_custom.scss
@@ -36,7 +36,7 @@ $button-secondary-bg-color: var(--timeline-background-color);
$field-focused-label-bg-color: var(--timeline-background-color);
$lightbox-border-color: var(--timeline-background-color);
$menu-bg-color: var(--timeline-background-color);
-$avatar-bg-color: var(--timeline-background-color);
+$background: var(--timeline-background-color);
$message-action-bar-bg-color: var(--timeline-background-color);
$background: var(--timeline-background-color);
$togglesw-ball-color: var(--timeline-background-color);
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index bce0195743..e9ed8eef35 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -124,7 +124,6 @@ $menu-box-shadow-color: rgba(118, 131, 156, 0.6);
$menu-selected-color: #f5f8fa;
$avatar-initial-color: $background;
-$avatar-bg-color: $background;
$h3-color: #3d3b39;
From 0faedebb9245e7a0f6ba1c4aff433e5a81ddec4e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 12:01:55 +0200
Subject: [PATCH 102/619] $roomheader-bg-color -> $background
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/rooms/_RoomHeader.scss | 2 +-
res/themes/dark/css/_dark.scss | 1 -
res/themes/light/css/_light.scss | 1 -
3 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/res/css/views/rooms/_RoomHeader.scss b/res/css/views/rooms/_RoomHeader.scss
index 0b73dcfcf2..81dfa90c96 100644
--- a/res/css/views/rooms/_RoomHeader.scss
+++ b/res/css/views/rooms/_RoomHeader.scss
@@ -17,7 +17,7 @@ limitations under the License.
.mx_RoomHeader {
flex: 0 0 50px;
border-bottom: 1px solid $primary-hairline-color;
- background-color: $roomheader-bg-color;
+ background-color: $background;
.mx_RoomHeader_e2eIcon {
height: 12px;
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 554c3b9e80..23485903be 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -107,7 +107,6 @@ $settings-subsection-fg-color: $text-secondary-color;
$topleftmenu-color: $primary-content;
$roomheader-color: $primary-content;
-$roomheader-bg-color: $background;
$roomheader-addroom-bg-color: rgba(92, 100, 112, 0.3);
$roomheader-addroom-fg-color: $primary-content;
$groupFilterPanel-button-color: $header-panel-text-primary-color;
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index e9ed8eef35..fc985a4b99 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -167,7 +167,6 @@ $rte-group-pill-color: #aaa;
$topleftmenu-color: #212121;
$roomheader-color: #45474a;
-$roomheader-bg-color: $background;
$roomheader-addroom-bg-color: rgba(92, 100, 112, 0.2);
$roomheader-addroom-fg-color: #5c6470;
$groupFilterPanel-button-color: #91A1C0;
From 8e610e594752c17802810b4e6e45d379b3510de1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 12:03:48 +0200
Subject: [PATCH 103/619] $dialpad-button-bg-color -> $quinary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/views/voip/_DialPad.scss | 2 +-
res/themes/dark/css/_dark.scss | 1 -
res/themes/light/css/_light.scss | 2 --
3 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/res/css/views/voip/_DialPad.scss b/res/css/views/voip/_DialPad.scss
index eefd2e9ba5..288f1f5d31 100644
--- a/res/css/views/voip/_DialPad.scss
+++ b/res/css/views/voip/_DialPad.scss
@@ -33,7 +33,7 @@ limitations under the License.
width: 40px;
height: 40px;
- background-color: $dialpad-button-bg-color;
+ background-color: $quinary-content;
border-radius: 40px;
font-size: 18px;
font-weight: 600;
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 23485903be..a5d0775a6b 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -122,7 +122,6 @@ $composer-e2e-icon-color: $header-panel-text-primary-color;
// ********************
$theme-button-bg-color: #e3e8f0;
-$dialpad-button-bg-color: $quinary-content;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
$roomlist-filter-active-bg-color: $background;
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index fc985a4b99..b8aefd6a4b 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -184,8 +184,6 @@ $voipcall-plinth-color: $system;
// ********************
$theme-button-bg-color: $quinary-content;
-$dialpad-button-bg-color: $quinary-content;
-
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
$roomlist-filter-active-bg-color: $background;
From 4604d817c4dad6a407804417ae22500704e44b34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 12:06:07 +0200
Subject: [PATCH 104/619] $roomlist-filter-active-bg-color -> $background
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/structures/_RoomSearch.scss | 2 +-
res/themes/dark/css/_dark.scss | 1 -
res/themes/light/css/_light.scss | 1 -
3 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/res/css/structures/_RoomSearch.scss b/res/css/structures/_RoomSearch.scss
index 80c1a044b3..bbd60a5ff3 100644
--- a/res/css/structures/_RoomSearch.scss
+++ b/res/css/structures/_RoomSearch.scss
@@ -62,7 +62,7 @@ limitations under the License.
}
&.mx_RoomSearch_focused, &.mx_RoomSearch_hasQuery {
- background-color: $roomlist-filter-active-bg-color;
+ background-color: $background;
.mx_RoomSearch_clearButton {
width: 16px;
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index a5d0775a6b..d88910d9d1 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -124,7 +124,6 @@ $composer-e2e-icon-color: $header-panel-text-primary-color;
$theme-button-bg-color: #e3e8f0;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
-$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(33, 38, 44, 0.90);
$roomlist-header-color: $tertiary-content;
$roomsublist-divider-color: $primary-content;
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index b8aefd6a4b..f08afadf2a 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -186,7 +186,6 @@ $voipcall-plinth-color: $system;
$theme-button-bg-color: $quinary-content;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
-$roomlist-filter-active-bg-color: $background;
$roomlist-bg-color: rgba(245, 245, 245, 0.90);
$roomlist-header-color: $tertiary-content;
$roomsublist-divider-color: $primary-content;
From 25a3a8ddfd2a5647100899b3dbb681265b3ed25a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 12:08:17 +0200
Subject: [PATCH 105/619] $roomlist-header-color -> $tertiary-content
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/css/structures/_LeftPanelWidget.scss | 4 ++--
res/css/structures/_SpacePanel.scss | 4 ++--
res/css/views/rooms/_RoomSublist.scss | 6 +++---
res/themes/dark/css/_dark.scss | 5 ++---
res/themes/light-custom/css/_custom.scss | 2 +-
res/themes/light/css/_light.scss | 5 ++---
6 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/res/css/structures/_LeftPanelWidget.scss b/res/css/structures/_LeftPanelWidget.scss
index 93c2898395..bb04b85624 100644
--- a/res/css/structures/_LeftPanelWidget.scss
+++ b/res/css/structures/_LeftPanelWidget.scss
@@ -24,7 +24,7 @@ limitations under the License.
align-items: center;
height: 24px;
- color: $roomlist-header-color;
+ color: $tertiary-content;
margin-top: 4px;
.mx_LeftPanelWidget_stickable {
@@ -62,7 +62,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background-color: $roomlist-header-color;
+ background-color: $tertiary-content;
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
diff --git a/res/css/structures/_SpacePanel.scss b/res/css/structures/_SpacePanel.scss
index fef24f2947..977c1c3670 100644
--- a/res/css/structures/_SpacePanel.scss
+++ b/res/css/structures/_SpacePanel.scss
@@ -46,7 +46,7 @@ $activeBorderColor: $secondary-content;
mask-repeat: no-repeat;
margin-left: $gutterSize;
margin-bottom: 12px;
- background-color: $roomlist-header-color;
+ background-color: $tertiary-content;
mask-image: url('$(res)/img/element-icons/expand-space-panel.svg');
&.expanded {
@@ -158,7 +158,7 @@ $activeBorderColor: $secondary-content;
mask-position: center;
mask-size: 20px;
mask-repeat: no-repeat;
- background-color: $roomlist-header-color;
+ background-color: $tertiary-content;
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
diff --git a/res/css/views/rooms/_RoomSublist.scss b/res/css/views/rooms/_RoomSublist.scss
index 3fffbfd64c..3f9daac25c 100644
--- a/res/css/views/rooms/_RoomSublist.scss
+++ b/res/css/views/rooms/_RoomSublist.scss
@@ -44,7 +44,7 @@ limitations under the License.
// Allow the container to collapse on itself if its children
// are not in the normal document flow
max-height: 24px;
- color: $roomlist-header-color;
+ color: $tertiary-content;
.mx_RoomSublist_stickable {
flex: 1;
@@ -161,7 +161,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background-color: $roomlist-header-color;
+ background-color: $tertiary-content;
mask-image: url('$(res)/img/feather-customised/chevron-down.svg');
}
@@ -262,7 +262,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- background: $roomlist-header-color;
+ background: $tertiary-content;
left: -1px; // adjust for image position
}
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index d88910d9d1..84c5ab4618 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -125,11 +125,10 @@ $theme-button-bg-color: #e3e8f0;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
$roomlist-bg-color: rgba(33, 38, 44, 0.90);
-$roomlist-header-color: $tertiary-content;
$roomsublist-divider-color: $primary-content;
$roomsublist-skeleton-ui-bg: linear-gradient(180deg, #3e444c 0%, #3e444c00 100%);
-$groupFilterPanel-divider-color: $roomlist-header-color;
+$groupFilterPanel-divider-color: $tertiary-content;
$roomtile-preview-color: $secondary-content;
$roomtile-default-badge-bg-color: #61708b;
@@ -137,7 +136,7 @@ $roomtile-selected-bg-color: rgba(141, 151, 165, 0.2);
// ********************
-$notice-secondary-color: $roomlist-header-color;
+$notice-secondary-color: $tertiary-content;
$panel-divider-color: transparent;
diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss
index 59c2fe9b2e..cdf3a32d38 100644
--- a/res/themes/light-custom/css/_custom.scss
+++ b/res/themes/light-custom/css/_custom.scss
@@ -84,7 +84,7 @@ $authpage-lang-color: var(--timeline-text-color);
$roomheader-color: var(--timeline-text-color);
// --roomlist-text-secondary-color
$roomtile-preview-color: var(--roomlist-text-secondary-color);
-$roomlist-header-color: var(--roomlist-text-secondary-color);
+$tertiary-content: var(--roomlist-text-secondary-color);
$roomtile-default-badge-bg-color: var(--roomlist-text-secondary-color);
//
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index f08afadf2a..08b3b57677 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -187,11 +187,10 @@ $theme-button-bg-color: $quinary-content;
$roomlist-button-bg-color: rgba(141, 151, 165, 0.2); // Buttons include the filter box, explore button, and sublist buttons
$roomlist-bg-color: rgba(245, 245, 245, 0.90);
-$roomlist-header-color: $tertiary-content;
$roomsublist-divider-color: $primary-content;
$roomsublist-skeleton-ui-bg: linear-gradient(180deg, #ffffff 0%, #ffffff00 100%);
-$groupFilterPanel-divider-color: $roomlist-header-color;
+$groupFilterPanel-divider-color: $tertiary-content;
$roomtile-preview-color: $secondary-content;
$roomtile-default-badge-bg-color: #61708b;
@@ -212,7 +211,7 @@ $username-variant6-color: #2dc2c5;
$username-variant7-color: #5c56f5;
$username-variant8-color: #74d12c;
-$notice-secondary-color: $roomlist-header-color;
+$notice-secondary-color: $tertiary-content;
$panel-divider-color: transparent;
From c34dedb57b21f19498d98cdee4b7923225fa2d96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0imon=20Brandner?=
Date: Thu, 12 Aug 2021 12:35:48 +0200
Subject: [PATCH 106/619] Fix legacy themes backports
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Šimon Brandner
---
res/themes/legacy-dark/css/_legacy-dark.scss | 8 ++++++--
res/themes/legacy-light/css/_legacy-light.scss | 9 ++++++---
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/res/themes/legacy-dark/css/_legacy-dark.scss b/res/themes/legacy-dark/css/_legacy-dark.scss
index 3e3412c6c1..d5bc5e6dd7 100644
--- a/res/themes/legacy-dark/css/_legacy-dark.scss
+++ b/res/themes/legacy-dark/css/_legacy-dark.scss
@@ -24,7 +24,12 @@ $primary-bg-color: $bg-color;
$muted-fg-color: $header-panel-text-primary-color;
// Legacy theme backports
-$quaternary-fg-color: #6F7882;
+$primary-content: $primary-fg-color;
+$secondary-content: $secondary-fg-color;
+$tertiary-content: $tertiary-fg-color;
+$quaternary-content: #6F7882;
+$quinary-content: $quaternary-content;
+$background: $primary-bg-color;
// used for dialog box text
$light-fg-color: $header-panel-text-secondary-color;
@@ -117,7 +122,6 @@ $composer-e2e-icon-color: $header-panel-text-primary-color;
// ********************
$theme-button-bg-color: #e3e8f0;
-$dialpad-button-bg-color: #6F7882;
$roomlist-button-bg-color: #1A1D23; // Buttons include the filter box, explore button, and sublist buttons
diff --git a/res/themes/legacy-light/css/_legacy-light.scss b/res/themes/legacy-light/css/_legacy-light.scss
index 3f722bcb30..47247e5e23 100644
--- a/res/themes/legacy-light/css/_legacy-light.scss
+++ b/res/themes/legacy-light/css/_legacy-light.scss
@@ -32,7 +32,12 @@ $primary-bg-color: #ffffff;
$muted-fg-color: #61708b; // Commonly used in headings and relevant alt text
// Legacy theme backports
-$quaternary-fg-color: #C1C6CD;
+$primary-content: $primary-fg-color;
+$secondary-content: $secondary-fg-color;
+$tertiary-content: $tertiary-fg-color;
+$quaternary-content: #C1C6CD;
+$quinary-content: #e3e8f0;
+$background: $primary-bg-color;
// used for dialog box text
$light-fg-color: #747474;
@@ -186,8 +191,6 @@ $voipcall-plinth-color: $system;
// ********************
$theme-button-bg-color: #e3e8f0;
-$dialpad-button-bg-color: #e3e8f0;
-
$roomlist-button-bg-color: #fff; // Buttons include the filter box, explore button, and sublist buttons
$roomlist-filter-active-bg-color: $roomlist-button-bg-color;
From 30b775b639c6564c93c79759dd59fca26ba40195 Mon Sep 17 00:00:00 2001
From: LinAGKar
Date: Fri, 13 Aug 2021 08:02:35 +0000
Subject: [PATCH 107/619] Translated using Weblate (Swedish)
Currently translated at 93.9% (2952 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/sv/
---
src/i18n/strings/sv.json | 49 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 48 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index e5e9cc5d34..785ea6d390 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -3367,5 +3367,52 @@
"Identity server (%(server)s)": "Identitetsserver (%(server)s)",
"Could not connect to identity server": "Kunde inte ansluta till identitetsservern",
"Not a valid identity server (status code %(code)s)": "Inte en giltig identitetsserver (statuskod %(code)s)",
- "Identity server URL must be HTTPS": "URL för identitetsserver måste vara HTTPS"
+ "Identity server URL must be HTTPS": "URL för identitetsserver måste vara HTTPS",
+ "Failed to update the history visibility of this space": "Misslyckades att uppdatera historiksynlighet för det här utrymmet",
+ "Failed to update the guest access of this space": "Misslyckades att uppdatera gäståtkomst för det här utrymmet",
+ "Failed to update the visibility of this space": "Misslyckades att uppdatera synligheten för det här utrymmet",
+ "Thank you for trying Spaces. Your feedback will help inform the next versions.": "Tack för att du prövar utrymmen. Din återkoppling kommer att underrätta kommande versioner.",
+ "Show all rooms": "Visa alla rum",
+ "To join an existing space you'll need an invite.": "För att gå med i ett existerande utrymme så behöver du en inbjudan.",
+ "You can also create a Space from a community.": "Du kan också skapa ett utrymme från en gemenskap.",
+ "You can change this later.": "Du kan ändra detta senare.",
+ "What kind of Space do you want to create?": "Vad för slags utrymme vill du skapa?",
+ "Address": "Adress",
+ "e.g. my-space": "t.ex. mitt-utrymme",
+ "Give feedback.": "Ge återkoppling.",
+ "Spaces feedback": "Utrymmesåterkoppling",
+ "Spaces are a new feature.": "Utrymmen är en ny funktion.",
+ "Delete avatar": "Radera avatar",
+ "Mute the microphone": "Tysta mikrofonen",
+ "Unmute the microphone": "Avtysta mikrofonen",
+ "Dialpad": "Knappsats",
+ "More": "Mer",
+ "Show sidebar": "Visa sidopanel",
+ "Hide sidebar": "Göm sidopanel",
+ "Start sharing your screen": "Börja dela din skärm",
+ "Stop sharing your screen": "Sluta dela din skärm",
+ "Stop the camera": "Stoppa kameran",
+ "Start the camera": "Starta kameran",
+ "Your camera is still enabled": "Din kamera är fortfarande på",
+ "Your camera is turned off": "Din kamera är av",
+ "%(sharerName)s is presenting": "%(sharerName)s presenterar",
+ "You are presenting": "Du presenterar",
+ "All rooms you're in will appear in Home.": "Alla rum du är in kommer att visas i Hem.",
+ "Show all rooms in Home": "Visa alla rum i Hem",
+ "Surround selected text when typing special characters": "Inneslut valt text vid skrivning av specialtecken",
+ "Use Ctrl + F to search timeline": "Använd Ctrl + F för att söka på tidslinjen",
+ "Use Command + F to search timeline": "Använd Kommando + F för att söka på tidslinjen",
+ "Don't send read receipts": "Skicka inte läskvitton",
+ "New layout switcher (with message bubbles)": "Ny arrangemangsbytare (med meddelandebubblor)",
+ "Send pseudonymous analytics data": "Skicka pseudoanonym statistik",
+ "This makes it easy for rooms to stay private to a space, while letting people in the space find and join them. All new rooms in a space will have this option available.": "Det här gör det enkelt för rum att hållas privat för ett utrymme, medan personer i utrymmet kan hitta och gå med i det. Alla nya rum i ett utrymme kommer att ha det här tillgängligt.",
+ "To help space members find and join a private room, go to that room's Security & Privacy settings.": "För att hjälpa utrymmesmedlemmar att hitta och gå med i ett privat rum, gå till det rummets säkerhets- och sekretessinställningar.",
+ "Help space members find private rooms": "Hjälp utrymmesmedlemmar att hitta privata rum",
+ "Help people in spaces to find and join private rooms": "Hjälp folk i utrymmen att hitta och gå med i privata rum",
+ "New in the Spaces beta": "Nytt i utrymmesbetan",
+ "Silence call": "Tysta samtal",
+ "Sound on": "Ljud på",
+ "User %(userId)s is already invited to the room": "Användaren %(userId)s har redan bjudits in till rummet",
+ "Transfer Failed": "Överföring misslyckades",
+ "Unable to transfer call": "Kan inte överföra samtal"
}
From 31b71871d0398d2f3e2ef2a6dddc318a54b5a59c Mon Sep 17 00:00:00 2001
From: Jeff Huang
Date: Fri, 13 Aug 2021 02:09:52 +0000
Subject: [PATCH 108/619] Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (3141 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/zh_Hant/
---
src/i18n/strings/zh_Hant.json | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index b10a4c7273..9867989224 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -3650,5 +3650,31 @@
"%(severalUsers)schanged the pinned messages for the room %(count)s times.|other": "%(severalUsers)s 變更了聊天室的釘選訊息 %(count)s 次。",
"Olm version:": "Olm 版本:",
"Delete avatar": "刪除大頭照",
- "Don't send read receipts": "不要傳送讀取回條"
+ "Don't send read receipts": "不要傳送讀取回條",
+ "Created from ": "從 建立",
+ "Communities won't receive further updates.": "社群不會收到進一步的更新。",
+ "Spaces are a new way to make a community, with new features coming.": "空間是一種建立社群的新方式,新功能即將到來。",
+ "Communities can now be made into Spaces": "社群現在可以變成空間了",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "請要求此社群的管理員設定為空間並留意邀請。",
+ "You can create a Space from this community here.": "您可以從此社群這裡建立一個空間。",
+ "This description will be shown to people when they view your space": "當人們檢視您的空間時,將會向他們顯示此描述",
+ "Flair won't be available in Spaces for the foreseeable future.": "在可預見的未來,Flair 將無法在空間中使用。",
+ "All rooms will be added and all community members will be invited.": "將新增所有聊天室並邀請所有社群成員。",
+ "A link to the Space will be put in your community description.": "空間連結將會放到您的社群描述中。",
+ "Create Space from community": "從社群建立空間",
+ "Failed to migrate community": "遷移社群失敗",
+ "To create a Space from another community, just pick the community in Preferences.": "要從另一個社群建立空間,僅需在「偏好設定」中挑選社群。",
+ " has been made and everyone who was a part of the community has been invited to it.": "已建立 ,且社群中的每個人都已被邀請加入。",
+ "Space created": "已建立空間",
+ "To view Spaces, hide communities in Preferences": "要檢視空間,在偏好設定中隱藏社群",
+ "This community has been upgraded into a Space": "此社群已被升級為空間",
+ "If a community isn't shown you may not have permission to convert it.": "若未顯示社群,代表您可能無權轉換它。",
+ "Show my Communities": "顯示我的社群",
+ "Communities have been archived to make way for Spaces but you can convert your communities into Spaces below. Converting will ensure your conversations get the latest features.": "社群已封存,以便讓空間接棒,但您可以在下方將您的社群轉換為空間。轉換可確保您的對話取得最新功能。",
+ "Create Space": "建立空間",
+ "Open Space": "開啟空間",
+ "To join an existing space you'll need an invite.": "要加入現有的空間,您必須獲得邀請。",
+ "You can also create a Space from a community.": "您也可以從社群建立空間。",
+ "You can change this later.": "您可以在稍後變更此設定。",
+ "What kind of Space do you want to create?": "您想建立什麼樣的空間?"
}
From 126d55f0abaf8a5c80ce66a48bc4692ba932c149 Mon Sep 17 00:00:00 2001
From: Tirifto
Date: Thu, 12 Aug 2021 21:31:18 +0000
Subject: [PATCH 109/619] Translated using Weblate (Esperanto)
Currently translated at 95.0% (2985 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 52 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 50 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index e86b58dbab..753c24b74d 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -2011,7 +2011,7 @@
"cached locally": "kaŝmemorita loke",
"not found locally": "ne trovita loke",
"User signing private key:": "Uzantosubskriba privata ŝlosilo:",
- "Keyboard Shortcuts": "Klavkombinoj",
+ "Keyboard Shortcuts": "Ŝparklavoj",
"Start a conversation with someone using their name, username (like ) or email address.": "Komencu interparolon kun iu per ĝia nomo, uzantonomo (kiel ), aŭ retpoŝtadreso.",
"a new master key signature": "nova ĉefŝlosila subskribo",
"a new cross-signing key signature": "nova subskribo de delega ŝlosilo",
@@ -3405,5 +3405,53 @@
"To help space members find and join a private room, go to that room's Security & Privacy settings.": "Por helpi al aranoj trovi kaj aliĝi privatan ĉambron, iru al la agordoj de Sekureco kaj Privateco de tiu ĉambro.",
"Help space members find private rooms": "Helpu aranojn trovi privatajn ĉambrojn",
"Help people in spaces to find and join private rooms": "Helpu al personoj en aroj trovi kaj aliĝi privatajn ĉambrojn",
- "New in the Spaces beta": "Nove en beta-versio de aroj"
+ "New in the Spaces beta": "Nove en beta-versio de aroj",
+ "This space has no local addresses": "Ĉi tiu aro ne havas lokajn adresojn",
+ "Stop recording": "Malŝalti registradon",
+ "Copy Room Link": "Kopii ligilon al ĉambro",
+ "You can now share your screen by pressing the \"screen share\" button during a call. You can even do this in audio calls if both sides support it!": "Nun vi povas vidigi vian ekranon per la butono «ekranvidado» dum voko. Vi eĉ povas fari tion dum voĉvokoj, se ambaŭ flankoj tion subtenas!",
+ "Screen sharing is here!": "Ekranvidado venis!",
+ "End-to-end encryption isn't enabled": "Tutvoja ĉifrado ne estas ŝaltita",
+ "Your private messages are normally encrypted, but this room isn't. Usually this is due to an unsupported device or method being used, like email invites. Enable encryption in settings.": "Viaj privataj mesaĝoj estas ordinare ĉifrataj, sed ĉi tiu ĉambro ne estas ĉifrata. Plej ofte tio okazas pro uzo de nesubtenataj aparato aŭ metodo, kiel ekzemple retpoŝtaj invitoj. Ŝaltu ĉifradon per agordoj.",
+ "Send voice message": "Sendi voĉmesaĝon",
+ "Show %(count)s other previews|one": "Montri %(count)s alian antaŭrigardon",
+ "Show %(count)s other previews|other": "Montri %(count)s aliajn antaŭrigardojn",
+ "Access": "Aliro",
+ "People with supported clients will be able to join the room without having a registered account.": "Personoj kun subtenataj klientoj povos aliĝi al la ĉambro sen registrita konto.",
+ "Decide who can join %(roomName)s.": "Decidu, kiu povas aliĝi al %(roomName)s.",
+ "Space members": "Aranoj",
+ "Anyone in a space can find and join. You can select multiple spaces.": "Ĉiu en aro povas trovi kaj aliĝi. Vi povas elekti plurajn arojn.",
+ "Anyone in %(spaceName)s can find and join. You can select other spaces too.": "Ĉiu en %(spaceName)s povas trovi kaj aliĝi. Vi povas elekti ankaŭ aliajn arojn.",
+ "Spaces with access": "Aroj kun aliro",
+ "Anyone in a space can find and join. Edit which spaces can access here.": "Ĉiu en aro povas trovi kaj aliĝi. Redaktu, kiuj aroj povas aliri, tie ĉi.",
+ "Currently, %(count)s spaces have access|other": "Nun, %(count)s aroj rajtas aliri",
+ "& %(count)s more|other": "kaj %(count)s pli",
+ "Upgrade required": "Necesas gradaltigo",
+ "Anyone can find and join.": "Ĉiu povas trovi kaj aliĝi.",
+ "Only invited people can join.": "Nur invititoj povas aliĝi.",
+ "Private (invite only)": "Privata (nur invititoj)",
+ "This upgrade will allow members of selected spaces access to this room without an invite.": "Ĉi tiu gradaltigo povigos anojn de la elektitaj aroj aliri ĉi tiun ĉambron sen invito.",
+ "Space information": "Informoj pri aro",
+ "Images, GIFs and videos": "Bildoj, GIF-bildoj kaj filmoj",
+ "Code blocks": "Kodujoj",
+ "To view all keyboard shortcuts, click here.": "Por vidi ĉiujn ŝparklavojn, klaku ĉi tie.",
+ "Keyboard shortcuts": "Ŝparklavoj",
+ "Olm version:": "Versio de Olm:",
+ "Identity server URL must be HTTPS": "URL de identiga servilo devas esti je HTTPS",
+ "There was an error loading your notification settings.": "Eraris enlegado de viaj agordoj pri sciigoj.",
+ "Mentions & keywords": "Mencioj kaj ĉefvortoj",
+ "Global": "Ĉie",
+ "New keyword": "Nova ĉefvorto",
+ "Keyword": "Ĉefvorto",
+ "Enable email notifications for %(email)s": "Ŝalti retpoŝtajn sciigojn por %(email)s",
+ "Enable for this account": "Ŝalti por ĉi tiu konto",
+ "An error occurred whilst saving your notification preferences.": "Eraris konservado de viaj preferoj pri sciigoj.",
+ "Error saving notification preferences": "Eraris konservado de preferoj pri sciigoj",
+ "Messages containing keywords": "Mesaĝoj enhavantaj ĉefvortojn",
+ "Message bubbles": "Mesaĝaj vezikoj",
+ "IRC": "IRC",
+ "Collapse": "Maletendi",
+ "Expand": "Etendi",
+ "Recommended for public spaces.": "Rekomendita por publikaj aroj.",
+ "Allow people to preview your space before they join.": "Povigi personojn antaŭrigardi vian aron antaŭ aliĝo."
}
From 72b018812d4ac1d5df5918d5ed72619dd4a5385e Mon Sep 17 00:00:00 2001
From: XoseM
Date: Fri, 13 Aug 2021 05:12:11 +0000
Subject: [PATCH 110/619] Translated using Weblate (Galician)
Currently translated at 100.0% (3141 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/gl/
---
src/i18n/strings/gl.json | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json
index 731d386b38..694eb99883 100644
--- a/src/i18n/strings/gl.json
+++ b/src/i18n/strings/gl.json
@@ -3647,5 +3647,31 @@
"Start the camera": "Abrir a cámara",
"Surround selected text when typing special characters": "Rodea o texto seleccionado ao escribir caracteres especiais",
"Delete avatar": "Eliminar avatar",
- "Don't send read receipts": "Non enviar confirmación de lectura"
+ "Don't send read receipts": "Non enviar confirmación de lectura",
+ "Flair won't be available in Spaces for the foreseeable future.": "Non agardamos que Aura esté dispoñible en Espazos no futuro.",
+ "Created from ": "Creado desde ",
+ "Communities won't receive further updates.": "As Comunidades non van recibir máis actualizacións.",
+ "Spaces are a new way to make a community, with new features coming.": "Os Espazos son un novo xeito de crear comunidade, con novas características por chegar.",
+ "Communities can now be made into Spaces": "Xa podes convertir as Comunidades en Espazos",
+ "Ask the admins of this community to make it into a Space and keep a look out for the invite.": "Pídelle á administración da comunidade que a converta nun Espazo e agarda polo convite.",
+ "You can create a Space from this community here.": "Podes crear aquí un Espazo a partir desta comunidade.",
+ "This description will be shown to people when they view your space": "Esta descrición váiselle mostrar ás persoas que vexan o teu espazo",
+ "All rooms will be added and all community members will be invited.": "Vanse engadir tódalas salas e tódolos membros da comunidade serán convidados.",
+ "A link to the Space will be put in your community description.": "Vaise pór unha ligazón ao Espazo na descrición da comunidade.",
+ "Create Space from community": "Crear Esapazo desde a comunidade",
+ "Failed to migrate community": "Fallou a migración da comunidade",
+ "To create a Space from another community, just pick the community in Preferences.": "Para crear un Espazo desde outra comunidade, só tes que elexir a comunidade nas Preferencias.",
+ " has been made and everyone who was a part of the community has been invited to it.": " foi creado e calquera que fose parte da comunidade foi convidada a el.",
+ "Space created": "Espazo creado",
+ "To view Spaces, hide communities in Preferences": "Para ver Espazos, agocha as comunidades en Preferencias",
+ "This community has been upgraded into a Space": "Esta comunidade foi convertida a un Espazo",
+ "If a community isn't shown you may not have permission to convert it.": "Se unha comunidade non aparece pode que non teñas permiso para convertila.",
+ "Show my Communities": "Mostrar as miñas Comunidades",
+ "Communities have been archived to make way for Spaces but you can convert your communities into Spaces below. Converting will ensure your conversations get the latest features.": "As Comunidades foron arquivadas para facerlle sitio a Espazos pero podes convertir as túas comunidades en Espazos. Ao convertilas permites que as túas conversas teñan as últimas ferramentas.",
+ "Create Space": "Crear Espazo",
+ "Open Space": "Abrir Espazo",
+ "To join an existing space you'll need an invite.": "Para unirte a un espazo existente precisas un convite.",
+ "You can also create a Space from a community.": "Tamén podes crear un Espazo a partir dunha comunidade.",
+ "You can change this later.": "Esto poderalo cambiar máis tarde.",
+ "What kind of Space do you want to create?": "Que tipo de Espazo queres crear?"
}
From 504905a82201d946b9b33b3bad95fc0ff9665101 Mon Sep 17 00:00:00 2001
From: LinAGKar
Date: Fri, 13 Aug 2021 11:50:08 +0000
Subject: [PATCH 111/619] Translated using Weblate (Swedish)
Currently translated at 95.4% (2998 of 3141 strings)
Translation: Element Web/matrix-react-sdk
Translate-URL: https://translate.element.io/projects/element-web/matrix-react-sdk/sv/
---
src/i18n/strings/sv.json | 40 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index 785ea6d390..8e564e06ed 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -3414,5 +3414,43 @@
"Sound on": "Ljud på",
"User %(userId)s is already invited to the room": "Användaren %(userId)s har redan bjudits in till rummet",
"Transfer Failed": "Överföring misslyckades",
- "Unable to transfer call": "Kan inte överföra samtal"
+ "Unable to transfer call": "Kan inte överföra samtal",
+ "Space information": "Utrymmesinfo",
+ "Images, GIFs and videos": "Bilder, GIF:ar och videor",
+ "Code blocks": "Kodblock",
+ "Displaying time": "Visar tid",
+ "To view all keyboard shortcuts, click here.": "För att se alla tangentbordsgenvägar, klicka här.",
+ "Keyboard shortcuts": "Tangentbordsgenvägar",
+ "If a community isn't shown you may not have permission to convert it.": "Om en gemenskap inte syns så kanske du inte har behörighet att se den.",
+ "Show my Communities": "Visa mina gemenskaper",
+ "Communities have been archived to make way for Spaces but you can convert your communities into Spaces below. Converting will ensure your conversations get the latest features.": "Gemenskaper har arkiverats för att göra plats för utrymmen men du kan konvertera dina gemenskaper till utrymmen nedan. Konvertering säkerställer att dina konversationer får de senaste funktionerna.",
+ "Create Space": "Skapa utrymme",
+ "Open Space": "Öppna utrymme",
+ "Identity server is": "Identitetsserver är",
+ "Olm version:": "Olm-version:",
+ "There was an error loading your notification settings.": "Ett fel inträffade när dina aviseringsinställningar laddades.",
+ "Mentions & keywords": "Omnämnanden & nyckelord",
+ "Global": "Globalt",
+ "New keyword": "Nytt nyckelord",
+ "Keyword": "Nyckelord",
+ "Enable email notifications for %(email)s": "Aktivera e-postaviseringar för %(email)s",
+ "Enable for this account": "Aktivera för det här kontot",
+ "An error occurred whilst saving your notification preferences.": "Ett fel inträffade när dina aviseringsinställningar sparades.",
+ "Error saving notification preferences": "Fel vid sparning av aviseringsinställningar",
+ "Messages containing keywords": "Meddelanden som innehåller nyckelord",
+ "Message bubbles": "Meddelandebubblor",
+ "IRC": "IRC",
+ "Collapse": "Kollapsa",
+ "Expand": "Expandera",
+ "Recommended for public spaces.": "Rekommenderas för offentliga utrymmen.",
+ "Allow people to preview your space before they join.": "Låt personer granska ditt utrymme innan de går med.",
+ "Preview Space": "Granska utrymme",
+ "only invited people can view and join": "bara inbjudna personer kan se och gå med",
+ "Invite only": "Endast inbjudan",
+ "anyone with the link can view and join": "vem som helst med länken kan se och gå med",
+ "Decide who can view and join %(spaceName)s.": "Bestäm vem kan se och gå med i %(spaceName)s.",
+ "Visibility": "Synlighet",
+ "This may be useful for public spaces.": "Det här kan vara användbart för ett offentligt utrymme.",
+ "Guests can join a space without having an account.": "Gäster kan gå med i ett utrymme utan att ha ett konto.",
+ "Enable guest access": "Aktivera gäståtkomst"
}
From 7f58a21aac4797825b6fb22593fc15df70d6fb8c Mon Sep 17 00:00:00 2001
From: Dariusz Niemczyk
Date: Fri, 13 Aug 2021 18:12:02 +0200
Subject: [PATCH 112/619] Improve BackdropPanel performance by ignoring React
---
src/components/structures/BackdropPanel.tsx | 70 ++++++++++++---------
src/components/views/spaces/SpacePanel.tsx | 10 ++-
2 files changed, 47 insertions(+), 33 deletions(-)
diff --git a/src/components/structures/BackdropPanel.tsx b/src/components/structures/BackdropPanel.tsx
index 5493fff3a6..9f4d639968 100644
--- a/src/components/structures/BackdropPanel.tsx
+++ b/src/components/structures/BackdropPanel.tsx
@@ -23,26 +23,22 @@ interface IProps {
backgroundImage?: CanvasImageSource;
}
-interface IState {
- spacePanelWidth: number;
- roomListWidth: number;
- viewportHeight: number;
-}
-
-export default class BackdropPanel extends React.PureComponent {
+export default class BackdropPanel extends React.PureComponent {
private spacesCanvasRef = createRef();
private roomListCanvasRef = createRef();
private spacesCtx: CanvasRenderingContext2D;
private roomListCtx: CanvasRenderingContext2D;
+ private sizes = {
+ spacePanelWidth: 0,
+ roomListWidth: 0,
+ height: 0,
+ };
+ private currentFrame?: number;
+
constructor(props: IProps) {
super(props);
- this.state = {
- spacePanelWidth: 0,
- roomListWidth: 0,
- viewportHeight: UIStore.instance.windowHeight,
- };
}
public componentDidMount() {
@@ -52,30 +48,41 @@ export default class BackdropPanel extends React.PureComponent {
UIStore.instance.on("LeftPanel", this.onResize);
}
+ public componentDidUpdate() {
+ if (this.props.backgroundImage) {
+ this.refreshBackdropImage();
+ }
+ }
+
public componentWillUnmount() {
UIStore.instance.off("SpacePanel", this.onResize);
UIStore.instance.off("LeftPanel", this.onResize);
}
- public componentDidUpdate() {
- if (this.props.backgroundImage) {
- requestAnimationFrame(this.refreshBackdropImage);
- }
- }
-
private onResize = () => {
const spacePanelDimensions = UIStore.instance.getElementDimensions("SpacePanel");
const roomListDimensions = UIStore.instance.getElementDimensions("LeftPanel");
- this.setState({
- spacePanelWidth: spacePanelDimensions ? spacePanelDimensions.width : 0,
- roomListWidth: roomListDimensions ? roomListDimensions.width : 0,
- viewportHeight: UIStore.instance.windowHeight,
- });
+ this.sizes = {
+ spacePanelWidth: spacePanelDimensions?.width ?? 0,
+ roomListWidth: roomListDimensions?.width ?? 0,
+ height: UIStore.instance.windowHeight,
+ };
+ if (this.props.backgroundImage) {
+ this.refreshBackdropImage();
+ }
+ };
+
+ private animate = () => {
+ if (this.currentFrame !== undefined) {
+ cancelAnimationFrame(this.currentFrame);
+ this.currentFrame = undefined;
+ }
+ this.currentFrame = requestAnimationFrame(this.refreshBackdropImage);
};
private refreshBackdropImage = (): void => {
- const width = this.state.spacePanelWidth + this.state.roomListWidth;
- const height = this.state.viewportHeight;
+ const { spacePanelWidth, roomListWidth, height } = this.sizes;
+ const width = spacePanelWidth + roomListWidth;
const { backgroundImage } = this.props;
const imageWidth = (backgroundImage as ImageBitmap).width
@@ -98,10 +105,11 @@ export default class BackdropPanel extends React.PureComponent {
const x = (width - resultWidth) / 2;
const y = (height - resultHeight) / 2;
- this.spacesCanvasRef.current.width = this.state.spacePanelWidth;
- this.spacesCanvasRef.current.height = this.state.viewportHeight;
- this.roomListCanvasRef.current.width = this.state.roomListWidth;
- this.roomListCanvasRef.current.height = this.state.viewportHeight;
+ this.spacesCanvasRef.current.width = spacePanelWidth;
+ this.spacesCanvasRef.current.height = height;
+ this.roomListCanvasRef.current.width = roomListWidth;
+ this.roomListCanvasRef.current.height = height;
+ this.roomListCanvasRef.current.style.transform = `translateX(${spacePanelWidth}px)`;
this.spacesCtx.filter = `blur(30px)`;
this.roomListCtx.filter = `blur(60px)`;
@@ -116,7 +124,7 @@ export default class BackdropPanel extends React.PureComponent {
backgroundImage,
0, 0,
imageWidth, imageHeight,
- x - this.state.spacePanelWidth,
+ x - spacePanelWidth,
y,
resultWidth,
resultHeight,
@@ -134,7 +142,7 @@ export default class BackdropPanel extends React.PureComponent {
/>
);
};
+
+export default JumpToBottomButton;
From e9e6269da7487c7b3456b149d757e08760db6136 Mon Sep 17 00:00:00 2001
From: Germain Souquet
Date: Sat, 14 Aug 2021 10:31:18 +0200
Subject: [PATCH 115/619] Migrat ReadReceiptMarker to TypeScript
---
src/components/views/rooms/EventTile.tsx | 1 +
...ReceiptMarker.js => ReadReceiptMarker.tsx} | 114 ++++++++++--------
2 files changed, 64 insertions(+), 51 deletions(-)
rename src/components/views/rooms/{ReadReceiptMarker.js => ReadReceiptMarker.tsx} (74%)
diff --git a/src/components/views/rooms/EventTile.tsx b/src/components/views/rooms/EventTile.tsx
index 301e33ec42..c5fbb99ede 100644
--- a/src/components/views/rooms/EventTile.tsx
+++ b/src/components/views/rooms/EventTile.tsx
@@ -240,6 +240,7 @@ interface IProps {
// opaque readreceipt info for each userId; used by ReadReceiptMarker
// to manage its animations. Should be an empty object when the room
// first loads
+ // TODO: Proper typing for RR info
readReceiptMap?: any;
// A function which is used to check if the parent panel is being
diff --git a/src/components/views/rooms/ReadReceiptMarker.js b/src/components/views/rooms/ReadReceiptMarker.tsx
similarity index 74%
rename from src/components/views/rooms/ReadReceiptMarker.js
rename to src/components/views/rooms/ReadReceiptMarker.tsx
index c9688b4d29..11e7563f11 100644
--- a/src/components/views/rooms/ReadReceiptMarker.js
+++ b/src/components/views/rooms/ReadReceiptMarker.tsx
@@ -16,7 +16,8 @@ limitations under the License.
*/
import React, { createRef } from 'react';
-import PropTypes from 'prop-types';
+import { RoomMember } from 'matrix-js-sdk/src';
+
import { _t } from '../../../languageHandler';
import { formatDate } from '../../../DateUtils';
import NodeAnimator from "../../../NodeAnimator";
@@ -24,53 +25,64 @@ import * as sdk from "../../../index";
import { toPx } from "../../../utils/units";
import { replaceableComponent } from "../../../utils/replaceableComponent";
+interface IProps {
+ // the RoomMember to show the RR for
+ member?: RoomMember;
+ // userId to fallback the avatar to
+ // if the member hasn't been loaded yet
+ fallbackUserId: string;
+
+ // number of pixels to offset the avatar from the right of its parent;
+ // typically a negative value.
+ leftOffset?: number;
+
+ // true to hide the avatar (it will still be animated)
+ hidden?: boolean;
+
+ // don't animate this RR into position
+ suppressAnimation?: boolean;
+
+ // an opaque object for storing information about this user's RR in
+ // this room
+ // TODO: proper typing for RR info
+ readReceiptInfo: any;
+
+ // A function which is used to check if the parent panel is being
+ // unmounted, to avoid unnecessary work. Should return true if we
+ // are being unmounted.
+ checkUnmounting?: () => boolean;
+
+ // callback for clicks on this RR
+ onClick?: (e: React.MouseEvent) => void;
+
+ // Timestamp when the receipt was read
+ timestamp?: number;
+
+ // True to show twelve hour format, false otherwise
+ showTwelveHour?: boolean;
+}
+
+interface IState {
+ suppressDisplay: boolean;
+ startStyles?: IReadReceiptMarkerStyle[];
+}
+
+interface IReadReceiptMarkerStyle {
+ top: number;
+ left: number;
+}
+
@replaceableComponent("views.rooms.ReadReceiptMarker")
-export default class ReadReceiptMarker extends React.PureComponent {
- static propTypes = {
- // the RoomMember to show the RR for
- member: PropTypes.object,
- // userId to fallback the avatar to
- // if the member hasn't been loaded yet
- fallbackUserId: PropTypes.string.isRequired,
-
- // number of pixels to offset the avatar from the right of its parent;
- // typically a negative value.
- leftOffset: PropTypes.number,
-
- // true to hide the avatar (it will still be animated)
- hidden: PropTypes.bool,
-
- // don't animate this RR into position
- suppressAnimation: PropTypes.bool,
-
- // an opaque object for storing information about this user's RR in
- // this room
- readReceiptInfo: PropTypes.object,
-
- // A function which is used to check if the parent panel is being
- // unmounted, to avoid unnecessary work. Should return true if we
- // are being unmounted.
- checkUnmounting: PropTypes.func,
-
- // callback for clicks on this RR
- onClick: PropTypes.func,
-
- // Timestamp when the receipt was read
- timestamp: PropTypes.number,
-
- // True to show twelve hour format, false otherwise
- showTwelveHour: PropTypes.bool,
- };
+export default class ReadReceiptMarker extends React.PureComponent {
+ private avatar: React.RefObject = createRef();
static defaultProps = {
leftOffset: 0,
};
- constructor(props) {
+ constructor(props: IProps) {
super(props);
- this._avatar = createRef();
-
this.state = {
// if we are going to animate the RR, we don't show it on first render,
// and instead just add a placeholder to the DOM; once we've been
@@ -80,7 +92,7 @@ export default class ReadReceiptMarker extends React.PureComponent {
};
}
- componentWillUnmount() {
+ public componentWillUnmount(): void {
// before we remove the rr, store its location in the map, so that if
// it reappears, it can be animated from the right place.
const rrInfo = this.props.readReceiptInfo;
@@ -95,29 +107,29 @@ export default class ReadReceiptMarker extends React.PureComponent {
return;
}
- const avatarNode = this._avatar.current;
+ const avatarNode = this.avatar.current;
rrInfo.top = avatarNode.offsetTop;
rrInfo.left = avatarNode.offsetLeft;
rrInfo.parent = avatarNode.offsetParent;
}
- componentDidMount() {
+ public componentDidMount(): void {
if (!this.state.suppressDisplay) {
// we've already done our display - nothing more to do.
return;
}
- this._animateMarker();
+ this.animateMarker();
}
- componentDidUpdate(prevProps) {
+ public componentDidUpdate(prevProps: IProps): void {
const differentLeftOffset = prevProps.leftOffset !== this.props.leftOffset;
const visibilityChanged = prevProps.hidden !== this.props.hidden;
if (differentLeftOffset || visibilityChanged) {
- this._animateMarker();
+ this.animateMarker();
}
}
- _animateMarker() {
+ private animateMarker(): void {
// treat new RRs as though they were off the top of the screen
let oldTop = -15;
@@ -126,7 +138,7 @@ export default class ReadReceiptMarker extends React.PureComponent {
oldTop = oldInfo.top + oldInfo.parent.getBoundingClientRect().top;
}
- const newElement = this._avatar.current;
+ const newElement = this.avatar.current;
let startTopOffset;
if (!newElement.offsetParent) {
// this seems to happen sometimes for reasons I don't understand
@@ -156,10 +168,10 @@ export default class ReadReceiptMarker extends React.PureComponent {
});
}
- render() {
+ public render(): JSX.Element {
const MemberAvatar = sdk.getComponent('avatars.MemberAvatar');
if (this.state.suppressDisplay) {
- return ;
+ return ;
}
const style = {
@@ -198,7 +210,7 @@ export default class ReadReceiptMarker extends React.PureComponent {
style={style}
title={title}
onClick={this.props.onClick}
- inputRef={this._avatar}
+ inputRef={this.avatar}
/>
);
From 7290a65924b830868ecb7c0bf712d2a1462514c3 Mon Sep 17 00:00:00 2001
From: Germain Souquet
Date: Sat, 14 Aug 2021 10:36:04 +0200
Subject: [PATCH 116/619] Migrate RoomDetailList to TypeScript
---
.../{RoomDetailList.js => RoomDetailList.tsx} | 27 +++++++++----------
1 file changed, 13 insertions(+), 14 deletions(-)
rename src/components/views/rooms/{RoomDetailList.js => RoomDetailList.tsx} (81%)
diff --git a/src/components/views/rooms/RoomDetailList.js b/src/components/views/rooms/RoomDetailList.tsx
similarity index 81%
rename from src/components/views/rooms/RoomDetailList.js
rename to src/components/views/rooms/RoomDetailList.tsx
index bf2f5418c9..ee7383d7c7 100644
--- a/src/components/views/rooms/RoomDetailList.js
+++ b/src/components/views/rooms/RoomDetailList.tsx
@@ -14,24 +14,23 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+import React from 'react';
+import { Room } from 'matrix-js-sdk/src';
+import classNames from 'classnames';
import * as sdk from '../../../index';
import dis from '../../../dispatcher/dispatcher';
-import React from 'react';
import { _t } from '../../../languageHandler';
-import PropTypes from 'prop-types';
-import classNames from 'classnames';
-import { roomShape } from './RoomDetailRow';
import { replaceableComponent } from "../../../utils/replaceableComponent";
-@replaceableComponent("views.rooms.RoomDetailList")
-export default class RoomDetailList extends React.Component {
- static propTypes = {
- rooms: PropTypes.arrayOf(roomShape),
- className: PropTypes.string,
- };
+interface IProps {
+ rooms?: Room[];
+ className?: string;
+}
- getRows() {
+@replaceableComponent("views.rooms.RoomDetailList")
+export default class RoomDetailList extends React.Component {
+ public getRows(): JSX.Element[] {
if (!this.props.rooms) return [];
const RoomDetailRow = sdk.getComponent('rooms.RoomDetailRow');
@@ -40,15 +39,15 @@ export default class RoomDetailList extends React.Component {
});
}
- onDetailsClick = (ev, room) => {
+ public onDetailsClick = (ev: React.MouseEvent, room: Room): void => {
dis.dispatch({
action: 'view_room',
room_id: room.roomId,
- room_alias: room.canonicalAlias || (room.aliases || [])[0],
+ room_alias: room.getCanonicalAlias() || (room.getAltAliases() || [])[0],
});
};
- render() {
+ public render(): JSX.Element {
const rows = this.getRows();
let rooms;
if (rows.length === 0) {
From 7e4c88f6ba11d610e4930daf8eab0cc3f1698738 Mon Sep 17 00:00:00 2001
From: Germain Souquet
Date: Sat, 14 Aug 2021 10:46:38 +0200
Subject: [PATCH 117/619] Migrate RoomUpgradeWarningBar to TypeScript
---
...arningBar.js => RoomUpgradeWarningBar.tsx} | 38 +++++++++----------
1 file changed, 18 insertions(+), 20 deletions(-)
rename src/components/views/rooms/{RoomUpgradeWarningBar.js => RoomUpgradeWarningBar.tsx} (88%)
diff --git a/src/components/views/rooms/RoomUpgradeWarningBar.js b/src/components/views/rooms/RoomUpgradeWarningBar.tsx
similarity index 88%
rename from src/components/views/rooms/RoomUpgradeWarningBar.js
rename to src/components/views/rooms/RoomUpgradeWarningBar.tsx
index 384845cdf9..6706e248e0 100644
--- a/src/components/views/rooms/RoomUpgradeWarningBar.js
+++ b/src/components/views/rooms/RoomUpgradeWarningBar.tsx
@@ -1,5 +1,5 @@
/*
-Copyright 2018-2020 New Vector Ltd
+Copyright 2018-2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@ limitations under the License.
*/
import React from 'react';
-import PropTypes from 'prop-types';
+import { MatrixEvent, Room, RoomState } from 'matrix-js-sdk/src';
import * as sdk from '../../../index';
import Modal from '../../../Modal';
@@ -23,33 +23,31 @@ import { _t } from '../../../languageHandler';
import { MatrixClientPeg } from "../../../MatrixClientPeg";
import { replaceableComponent } from "../../../utils/replaceableComponent";
+interface IProps {
+ room: Room;
+}
+
+interface IState {
+ upgraded?: boolean;
+}
+
@replaceableComponent("views.rooms.RoomUpgradeWarningBar")
-export default class RoomUpgradeWarningBar extends React.PureComponent {
- static propTypes = {
- room: PropTypes.object.isRequired,
- recommendation: PropTypes.object.isRequired,
- };
-
- constructor(props) {
- super(props);
- this.state = {};
- }
-
- componentDidMount() {
+export default class RoomUpgradeWarningBar extends React.PureComponent {
+ public componentDidMount(): void {
const tombstone = this.props.room.currentState.getStateEvents("m.room.tombstone", "");
this.setState({ upgraded: tombstone && tombstone.getContent().replacement_room });
- MatrixClientPeg.get().on("RoomState.events", this._onStateEvents);
+ MatrixClientPeg.get().on("RoomState.events", this.onStateEvents);
}
- componentWillUnmount() {
+ public componentWillUnmount(): void {
const cli = MatrixClientPeg.get();
if (cli) {
- cli.removeListener("RoomState.events", this._onStateEvents);
+ cli.removeListener("RoomState.events", this.onStateEvents);
}
}
- _onStateEvents = (event, state) => {
+ private onStateEvents = (event: MatrixEvent, state: RoomState): void => {
if (!this.props.room || event.getRoomId() !== this.props.room.roomId) {
return;
}
@@ -60,12 +58,12 @@ export default class RoomUpgradeWarningBar extends React.PureComponent {
this.setState({ upgraded: tombstone && tombstone.getContent().replacement_room });
};
- onUpgradeClick = () => {
+ private onUpgradeClick = (): void => {
const RoomUpgradeDialog = sdk.getComponent('dialogs.RoomUpgradeDialog');
Modal.createTrackedDialog('Upgrade Room Version', '', RoomUpgradeDialog, { room: this.props.room });
};
- render() {
+ public render(): JSX.Element {
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
let doUpgradeWarnings = (
From eb120901aea7c1fb5b54bb9ceb8cf7516a7498d7 Mon Sep 17 00:00:00 2001
From: Germain Souquet
Date: Sat, 14 Aug 2021 10:48:30 +0200
Subject: [PATCH 118/619] Migrate SimpleRoomHeader to TypeScript
---
...mpleRoomHeader.js => SimpleRoomHeader.tsx} | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
rename src/components/views/rooms/{SimpleRoomHeader.js => SimpleRoomHeader.tsx} (84%)
diff --git a/src/components/views/rooms/SimpleRoomHeader.js b/src/components/views/rooms/SimpleRoomHeader.tsx
similarity index 84%
rename from src/components/views/rooms/SimpleRoomHeader.js
rename to src/components/views/rooms/SimpleRoomHeader.tsx
index a2b5566e39..b81e906559 100644
--- a/src/components/views/rooms/SimpleRoomHeader.js
+++ b/src/components/views/rooms/SimpleRoomHeader.tsx
@@ -1,5 +1,6 @@
/*
Copyright 2016 OpenMarket Ltd
+Copyright 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,23 +16,21 @@ limitations under the License.
*/
import React from 'react';
-import PropTypes from 'prop-types';
import { replaceableComponent } from "../../../utils/replaceableComponent";
+interface IProps {
+ title?: string;
+ // `src` to an image. Optional.
+ icon?: string;
+}
+
/*
* A stripped-down room header used for things like the user settings
* and room directory.
*/
@replaceableComponent("views.rooms.SimpleRoomHeader")
-export default class SimpleRoomHeader extends React.Component {
- static propTypes = {
- title: PropTypes.string,
-
- // `src` to an image. Optional.
- icon: PropTypes.string,
- };
-
- render() {
+export default class SimpleRoomHeader extends React.PureComponent {
+ public render(): JSX.Element {
let icon;
if (this.props.icon) {
icon =
Date: Sat, 14 Aug 2021 10:51:08 +0200
Subject: [PATCH 119/619] Migrate TopUnreadMessagesBar to TypeScript
---
...dMessagesBar.js => TopUnreadMessagesBar.tsx} | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
rename src/components/views/rooms/{TopUnreadMessagesBar.js => TopUnreadMessagesBar.tsx} (84%)
diff --git a/src/components/views/rooms/TopUnreadMessagesBar.js b/src/components/views/rooms/TopUnreadMessagesBar.tsx
similarity index 84%
rename from src/components/views/rooms/TopUnreadMessagesBar.js
rename to src/components/views/rooms/TopUnreadMessagesBar.tsx
index d2a3e3a303..01797299cf 100644
--- a/src/components/views/rooms/TopUnreadMessagesBar.js
+++ b/src/components/views/rooms/TopUnreadMessagesBar.tsx
@@ -1,7 +1,7 @@
/*
Copyright 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
-Copyright 2019 New Vector Ltd
+Copyright 2019-2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,19 +17,18 @@ limitations under the License.
*/
import React from 'react';
-import PropTypes from 'prop-types';
import { _t } from '../../../languageHandler';
import AccessibleButton from '../elements/AccessibleButton';
import { replaceableComponent } from "../../../utils/replaceableComponent";
-@replaceableComponent("views.rooms.TopUnreadMessagesBar")
-export default class TopUnreadMessagesBar extends React.Component {
- static propTypes = {
- onScrollUpClick: PropTypes.func,
- onCloseClick: PropTypes.func,
- };
+interface IProps {
+ onScrollUpClick?: (e: React.MouseEvent) => void;
+ onCloseClick?: (e: React.MouseEvent) => void;
+}
- render() {
+@replaceableComponent("views.rooms.TopUnreadMessagesBar")
+export default class TopUnreadMessagesBar extends React.PureComponent {
+ public render(): JSX.Element {
return (
Date: Sat, 14 Aug 2021 10:53:53 +0200
Subject: [PATCH 120/619] Migrate AvatarSetting to TypeScript
---
.../{AvatarSetting.js => AvatarSetting.tsx} | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
rename src/components/views/settings/{AvatarSetting.js => AvatarSetting.tsx} (86%)
diff --git a/src/components/views/settings/AvatarSetting.js b/src/components/views/settings/AvatarSetting.tsx
similarity index 86%
rename from src/components/views/settings/AvatarSetting.js
rename to src/components/views/settings/AvatarSetting.tsx
index f22c4f1c85..806d0adb73 100644
--- a/src/components/views/settings/AvatarSetting.js
+++ b/src/components/views/settings/AvatarSetting.tsx
@@ -15,12 +15,19 @@ limitations under the License.
*/
import React, { useState } from "react";
-import PropTypes from "prop-types";
import { _t } from "../../../languageHandler";
import AccessibleButton from "../elements/AccessibleButton";
import classNames from "classnames";
-const AvatarSetting = ({ avatarUrl, avatarAltText, avatarName, uploadAvatar, removeAvatar }) => {
+interface IProps {
+ avatarUrl?: string;
+ avatarName: string; // name of user/room the avatar belongs to
+ uploadAvatar?: (e: React.MouseEvent) => void;
+ removeAvatar?: (e: React.MouseEvent) => void;
+ avatarAltText: string;
+}
+
+const AvatarSetting: React.FC = ({ avatarUrl, avatarAltText, avatarName, uploadAvatar, removeAvatar }) => {
const [isHovering, setIsHovering] = useState(false);
const hoveringProps = {
onMouseEnter: () => setIsHovering(true),
@@ -78,12 +85,4 @@ const AvatarSetting = ({ avatarUrl, avatarAltText, avatarName, uploadAvatar, rem
;
};
-AvatarSetting.propTypes = {
- avatarUrl: PropTypes.string,
- avatarName: PropTypes.string.isRequired, // name of user/room the avatar belongs to
- uploadAvatar: PropTypes.func,
- removeAvatar: PropTypes.func,
- avatarAltText: PropTypes.string.isRequired,
-};
-
export default AvatarSetting;
From bedfbedff0ec3ffd8e081eef91951b76702ccf65 Mon Sep 17 00:00:00 2001
From: Germain Souquet
Date: Sat, 14 Aug 2021 11:04:36 +0200
Subject: [PATCH 121/619] Migrate ChangeAvatar to TypeScript
---
.../{ChangeAvatar.js => ChangeAvatar.tsx} | 96 ++++++++++---------
1 file changed, 52 insertions(+), 44 deletions(-)
rename src/components/views/settings/{ChangeAvatar.js => ChangeAvatar.tsx} (74%)
diff --git a/src/components/views/settings/ChangeAvatar.js b/src/components/views/settings/ChangeAvatar.tsx
similarity index 74%
rename from src/components/views/settings/ChangeAvatar.js
rename to src/components/views/settings/ChangeAvatar.tsx
index c3a1544cdc..6394bad3de 100644
--- a/src/components/views/settings/ChangeAvatar.js
+++ b/src/components/views/settings/ChangeAvatar.tsx
@@ -1,5 +1,6 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,54 +16,62 @@ limitations under the License.
*/
import React from 'react';
-import PropTypes from 'prop-types';
import { MatrixClientPeg } from "../../../MatrixClientPeg";
import * as sdk from '../../../index';
import { _t } from '../../../languageHandler';
import Spinner from '../elements/Spinner';
import { replaceableComponent } from "../../../utils/replaceableComponent";
import { mediaFromMxc } from "../../../customisations/Media";
+import { MatrixEvent, Room } from '../../../../../matrix-js-sdk/src';
+
+interface IProps {
+ initialAvatarUrl?: string;
+ room?: Room;
+ // if false, you need to call changeAvatar.onFileSelected yourself.
+ showUploadSection?: boolean;
+ width?: number;
+ height?: number;
+ className?: string;
+}
+
+interface IState {
+ avatarUrl?: string;
+ errorText?: string;
+ phase?: Phases;
+}
+
+enum Phases {
+ Display = "display",
+ Uploading = "uploading",
+ Error = "error",
+}
@replaceableComponent("views.settings.ChangeAvatar")
-export default class ChangeAvatar extends React.Component {
- static propTypes = {
- initialAvatarUrl: PropTypes.string,
- room: PropTypes.object,
- // if false, you need to call changeAvatar.onFileSelected yourself.
- showUploadSection: PropTypes.bool,
- width: PropTypes.number,
- height: PropTypes.number,
- className: PropTypes.string,
- };
-
- static Phases = {
- Display: "display",
- Uploading: "uploading",
- Error: "error",
- };
-
- static defaultProps = {
+export default class ChangeAvatar extends React.Component {
+ public static defaultProps = {
showUploadSection: true,
className: "",
width: 80,
height: 80,
};
- constructor(props) {
+ private avatarSet = false;
+
+ constructor(props: IProps) {
super(props);
this.state = {
avatarUrl: this.props.initialAvatarUrl,
- phase: ChangeAvatar.Phases.Display,
+ phase: Phases.Display,
};
}
- componentDidMount() {
+ public componentDidMount(): void {
MatrixClientPeg.get().on("RoomState.events", this.onRoomStateEvents);
}
// TODO: [REACT-WARNING] Replace with appropriate lifecycle event
- UNSAFE_componentWillReceiveProps(newProps) { // eslint-disable-line camelcase
+ public UNSAFE_componentWillReceiveProps(newProps): void { // eslint-disable-line camelcase
if (this.avatarSet) {
// don't clobber what the user has just set
return;
@@ -72,13 +81,13 @@ export default class ChangeAvatar extends React.Component {
});
}
- componentWillUnmount() {
+ public componentWillUnmount(): void {
if (MatrixClientPeg.get()) {
MatrixClientPeg.get().removeListener("RoomState.events", this.onRoomStateEvents);
}
}
- onRoomStateEvents = (ev) => {
+ public onRoomStateEvents = (ev: MatrixEvent) => {
if (!this.props.room) {
return;
}
@@ -94,18 +103,17 @@ export default class ChangeAvatar extends React.Component {
}
};
- setAvatarFromFile(file) {
+ public setAvatarFromFile(file): Promise<{}> {
let newUrl = null;
this.setState({
- phase: ChangeAvatar.Phases.Uploading,
+ phase: Phases.Uploading,
});
- const self = this;
- const httpPromise = MatrixClientPeg.get().uploadContent(file).then(function(url) {
+ const httpPromise = MatrixClientPeg.get().uploadContent(file).then((url) => {
newUrl = url;
- if (self.props.room) {
+ if (this.props.room) {
return MatrixClientPeg.get().sendStateEvent(
- self.props.room.roomId,
+ this.props.room.roomId,
'm.room.avatar',
{ url: url },
'',
@@ -115,33 +123,33 @@ export default class ChangeAvatar extends React.Component {
}
});
- httpPromise.then(function() {
- self.setState({
- phase: ChangeAvatar.Phases.Display,
+ httpPromise.then(() => {
+ this.setState({
+ phase: Phases.Display,
avatarUrl: mediaFromMxc(newUrl).srcHttp,
});
- }, function(error) {
- self.setState({
- phase: ChangeAvatar.Phases.Error,
+ }, () => {
+ this.setState({
+ phase: Phases.Error,
});
- self.onError(error);
+ this.onError();
});
return httpPromise;
}
- onFileSelected = (ev) => {
+ private onFileSelected = (ev: React.ChangeEvent) => {
this.avatarSet = true;
return this.setAvatarFromFile(ev.target.files[0]);
};
- onError = (error) => {
+ private onError = (): void => {
this.setState({
errorText: _t("Failed to upload profile picture!"),
});
};
- render() {
+ public render(): JSX.Element {
let avatarImg;
// Having just set an avatar we just display that since it will take a little
// time to propagate through to the RoomAvatar.
@@ -178,8 +186,8 @@ export default class ChangeAvatar extends React.Component {
}
switch (this.state.phase) {
- case ChangeAvatar.Phases.Display:
- case ChangeAvatar.Phases.Error:
+ case Phases.Display:
+ case Phases.Error:
return (