Skip to content

Commit 503ad57

Browse files
authored
Merge branch 'develop' into t3chguy/oidc-cb-url-ec-universal-links
2 parents 9390121 + 08acbf9 commit 503ad57

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+396
-395
lines changed

src/BasePlatform.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export default abstract class BasePlatform {
7272
protected _favicon?: Favicon;
7373

7474
protected constructor() {
75-
dis.register(this.onAction);
75+
dis.register(this.onAction.bind(this));
7676
this.startUpdateCheck = this.startUpdateCheck.bind(this);
7777
}
7878

@@ -85,14 +85,14 @@ export default abstract class BasePlatform {
8585
*/
8686
public abstract getDefaultDeviceDisplayName(): string;
8787

88-
protected onAction = (payload: ActionPayload): void => {
88+
protected onAction(payload: ActionPayload): void {
8989
switch (payload.action) {
9090
case "on_client_not_viable":
9191
case Action.OnLoggedOut:
9292
this.setNotificationCount(0);
9393
break;
9494
}
95-
};
95+
}
9696

9797
// Used primarily for Analytics
9898
public abstract getHumanReadableName(): string;

src/Modal.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ Please see LICENSE files in the repository root for full details.
1010
import React, { StrictMode } from "react";
1111
import { createRoot, type Root } from "react-dom/client";
1212
import classNames from "classnames";
13-
import { type IDeferred, defer } from "matrix-js-sdk/src/utils";
1413
import { TypedEventEmitter } from "matrix-js-sdk/src/matrix";
1514
import { Glass, TooltipProvider } from "@vector-im/compound-web";
1615

@@ -70,7 +69,7 @@ export interface IModal<C extends ComponentType> {
7069
/** A deferred to resolve when the dialog closes, with the results as provided by
7170
* the call to {@link close} (normally from the `onFinished` callback).
7271
*/
73-
deferred?: IDeferred<OnFinishedParams<C> | []>;
72+
deferred?: PromiseWithResolvers<OnFinishedParams<C> | []>;
7473
}
7574

7675
/** The result of {@link Modal.createDialog}.
@@ -254,7 +253,7 @@ export class ModalManager extends TypedEventEmitter<ModalManagerEvent, HandlerMa
254253
}
255254

256255
private getCloseFn<C extends ComponentType>(modal: IModal<C>): [IHandle<C>["close"], IHandle<C>["finished"]] {
257-
modal.deferred = defer<OnFinishedParams<C> | []>();
256+
modal.deferred = Promise.withResolvers<OnFinishedParams<C> | []>();
258257
return [
259258
async (...args: OnFinishedParams<C>): Promise<void> => {
260259
if (modal.beforeClosePromise) {

src/SlidingSyncManager.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import {
4949
SlidingSyncState,
5050
} from "matrix-js-sdk/src/sliding-sync";
5151
import { logger } from "matrix-js-sdk/src/logger";
52-
import { defer, sleep } from "matrix-js-sdk/src/utils";
52+
import { sleep } from "matrix-js-sdk/src/utils";
5353

5454
// how long to long poll for
5555
const SLIDING_SYNC_TIMEOUT_MS = 20 * 1000;
@@ -184,7 +184,7 @@ export class SlidingSyncManager {
184184
public slidingSync?: SlidingSync;
185185
private client?: MatrixClient;
186186

187-
private configureDefer = defer<void>();
187+
private configureDefer = Promise.withResolvers<void>();
188188

189189
public static get instance(): SlidingSyncManager {
190190
return SlidingSyncManager.internalInstance;

src/WorkerManager.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
66
Please see LICENSE files in the repository root for full details.
77
*/
88

9-
import { defer, type IDeferred } from "matrix-js-sdk/src/utils";
10-
119
import { type WorkerPayload } from "./workers/worker";
1210

1311
export class WorkerManager<Request extends object, Response> {
1412
private readonly worker: Worker;
1513
private seq = 0;
16-
private pendingDeferredMap = new Map<number, IDeferred<Response>>();
14+
private pendingDeferredMap = new Map<number, PromiseWithResolvers<Response>>();
1715

1816
public constructor(worker: Worker) {
1917
this.worker = worker;
@@ -30,7 +28,7 @@ export class WorkerManager<Request extends object, Response> {
3028

3129
public call(request: Request): Promise<Response> {
3230
const seq = this.seq++;
33-
const deferred = defer<Response>();
31+
const deferred = Promise.withResolvers<Response>();
3432
this.pendingDeferredMap.set(seq, deferred);
3533
this.worker.postMessage({ seq, ...request });
3634
return deferred.promise;

src/audio/Playback.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ Please see LICENSE files in the repository root for full details.
99
import EventEmitter from "events";
1010
import { SimpleObservable } from "matrix-widget-api";
1111
import { logger } from "matrix-js-sdk/src/logger";
12-
import { defer } from "matrix-js-sdk/src/utils";
1312

1413
import { UPDATE_EVENT } from "../stores/AsyncStore";
1514
import { arrayFastResample } from "../utils/arrays";
@@ -158,7 +157,7 @@ export class Playback extends EventEmitter implements IDestroyable, PlaybackInte
158157
// 5mb
159158
logger.log("Audio file too large: processing through <audio /> element");
160159
this.element = document.createElement("AUDIO") as HTMLAudioElement;
161-
const deferred = defer<unknown>();
160+
const deferred = Promise.withResolvers<unknown>();
162161
this.element.onloadeddata = deferred.resolve;
163162
this.element.onerror = deferred.reject;
164163
this.element.src = URL.createObjectURL(new Blob([this.buf]));

src/components/structures/MatrixChat.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
type SyncStateData,
2020
type TimelineEvents,
2121
} from "matrix-js-sdk/src/matrix";
22-
import { defer, type IDeferred, type QueryDict } from "matrix-js-sdk/src/utils";
22+
import { type QueryDict } from "matrix-js-sdk/src/utils";
2323
import { logger } from "matrix-js-sdk/src/logger";
2424
import { throttle } from "lodash";
2525
import { CryptoEvent, type KeyBackupInfo } from "matrix-js-sdk/src/crypto-api";
@@ -215,7 +215,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
215215
};
216216

217217
private firstSyncComplete = false;
218-
private firstSyncPromise: IDeferred<void>;
218+
private firstSyncPromise: PromiseWithResolvers<void>;
219219

220220
private screenAfterLogin?: IScreen;
221221
private tokenLogin?: boolean;
@@ -254,7 +254,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
254254

255255
// Used by _viewRoom before getting state from sync
256256
this.firstSyncComplete = false;
257-
this.firstSyncPromise = defer();
257+
this.firstSyncPromise = Promise.withResolvers();
258258

259259
if (this.props.config.sync_timeline_limit) {
260260
MatrixClientPeg.opts.initialSyncLimit = this.props.config.sync_timeline_limit;
@@ -1471,11 +1471,11 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
14711471
// since we're about to start the client and therefore about to do the first sync
14721472
// We resolve the existing promise with the new one to update any existing listeners
14731473
if (!this.firstSyncComplete) {
1474-
const firstSyncPromise = defer<void>();
1474+
const firstSyncPromise = Promise.withResolvers<void>();
14751475
this.firstSyncPromise.resolve(firstSyncPromise.promise);
14761476
this.firstSyncPromise = firstSyncPromise;
14771477
} else {
1478-
this.firstSyncPromise = defer();
1478+
this.firstSyncPromise = Promise.withResolvers();
14791479
}
14801480
this.firstSyncComplete = false;
14811481
const cli = MatrixClientPeg.safeGet();

src/components/views/dialogs/MessageEditHistoryDialog.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ Please see LICENSE files in the repository root for full details.
88

99
import React, { type JSX } from "react";
1010
import { type MatrixEvent, EventType, RelationType, type MatrixClient, MatrixError } from "matrix-js-sdk/src/matrix";
11-
import { defer } from "matrix-js-sdk/src/utils";
1211
import { logger } from "matrix-js-sdk/src/logger";
1312

1413
import { MatrixClientPeg } from "../../../MatrixClientPeg";
@@ -58,7 +57,7 @@ export default class MessageEditHistoryDialog extends React.PureComponent<IProps
5857
const eventId = this.props.mxEvent.getId()!;
5958
const client = MatrixClientPeg.safeGet();
6059

61-
const { resolve, reject, promise } = defer<boolean>();
60+
const { resolve, reject, promise } = Promise.withResolvers<boolean>();
6261
let result: Awaited<ReturnType<MatrixClient["relations"]>>;
6362

6463
try {

src/components/views/rooms/Autocomplete.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import React, { createRef, type RefObject } from "react";
1010
import classNames from "classnames";
1111
import { flatMap } from "lodash";
1212
import { type Room } from "matrix-js-sdk/src/matrix";
13-
import { defer } from "matrix-js-sdk/src/utils";
1413

1514
import Autocompleter, {
1615
type ICompletion,
@@ -177,7 +176,7 @@ export default class Autocomplete extends React.PureComponent<IProps, IState> {
177176
}
178177
}
179178

180-
const deferred = defer<void>();
179+
const deferred = Promise.withResolvers<void>();
181180
this.setState(
182181
{
183182
completions,

src/components/views/settings/tabs/user/SessionManagerTab.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ Please see LICENSE files in the repository root for full details.
99
import React, { lazy, Suspense, useCallback, useContext, useEffect, useRef, useState } from "react";
1010
import { type MatrixClient } from "matrix-js-sdk/src/matrix";
1111
import { logger } from "matrix-js-sdk/src/logger";
12-
import { defer } from "matrix-js-sdk/src/utils";
1312

1413
import { _t } from "../../../../../languageHandler";
1514
import Modal from "../../../../../Modal";
@@ -98,7 +97,7 @@ const useSignOut = (
9897
const url = getManageDeviceUrl(delegatedAuthAccountUrl, deviceId);
9998
window.open(url, "_blank");
10099
} else {
101-
const deferredSuccess = defer<boolean>();
100+
const deferredSuccess = Promise.withResolvers<boolean>();
102101
await deleteDevicesWithInteractiveAuth(matrixClient, deviceIds, async (success) => {
103102
deferredSuccess.resolve(!!success);
104103
});

src/i18n/strings/cs.json

+17-11
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@
388388
"fallback_button": "Zahájit autentizaci",
389389
"mas_cross_signing_reset_cta": "Přejděte na svůj účet",
390390
"mas_cross_signing_reset_description": "Resetujte svou identitu prostřednictvím svého poskytovatele účtu a poté se vraťte a klikněte na \"Opakovat\".",
391+
"mas_cross_signing_reset_title": "Přejděte na svůj účet a obnovte svou identitu",
391392
"msisdn": "Na číslo %(msisdn)s byla odeslána textová zpráva",
392393
"msisdn_token_incorrect": "Neplatný token",
393394
"msisdn_token_prompt": "Prosím zadejte kód z této zprávy:",
@@ -995,7 +996,6 @@
995996
"accepting": "Přijímání…",
996997
"after_new_login": {
997998
"device_verified": "Zařízení ověřeno",
998-
"reset_confirmation": "Opravdu chcete resetovat ověřovací klíče?",
999999
"skip_verification": "Prozatím přeskočit ověřování",
10001000
"unable_to_verify": "Nelze ověřit toto zařízení",
10011001
"verify_this_device": "Ověřit toto zařízení"
@@ -1066,8 +1066,6 @@
10661066
"verify_emoji_prompt": "Ověření porovnáním několika emoji.",
10671067
"verify_emoji_prompt_qr": "Pokud vám skenování kódů nefunguje, ověřte se porovnáním emoji.",
10681068
"verify_later": "Ověřím se později",
1069-
"verify_reset_warning_1": "Resetování ověřovacích klíčů nelze vrátit zpět. Po jejich resetování nebudete mít přístup ke starým zašifrovaným zprávám a všem přátelům, kteří vás dříve ověřili, se zobrazí bezpečnostní varování, dokud se u nich znovu neověříte.",
1070-
"verify_reset_warning_2": "Pokračujte pouze v případě, že jste si jisti, že jste ztratili všechna ostatní zařízení a klíč pro obnovení.",
10711069
"verify_using_device": "Ověřit pomocí jiného zařízení",
10721070
"verify_using_key": "Ověřit pomocí klíče pro obnovení",
10731071
"verify_using_key_or_phrase": "Ověření pomocí klíče pro obnovení nebo fráze",
@@ -2127,6 +2125,7 @@
21272125
"failed_add_tag": "Nepodařilo se přidat štítek %(tagName)s k místnosti",
21282126
"failed_remove_tag": "Nepodařilo se odstranit štítek %(tagName)s z místnosti",
21292127
"failed_set_dm_tag": "Nepodařilo se nastavit značku přímé zprávy",
2128+
"filter": "Filtr",
21302129
"filters": {
21312130
"favourite": "Oblíbené",
21322131
"people": "Lidé",
@@ -2160,6 +2159,12 @@
21602159
"open_room": "Otevřít místnost %(roomName)s"
21612160
},
21622161
"room_options": "Možnosti místnosti",
2162+
"secondary_filter": {
2163+
"all_activity": "Veškerá aktivita",
2164+
"invites_only": "Pouze pozvané",
2165+
"low_priority": "Nízká priorita",
2166+
"mentions_only": "Pouze zmínky"
2167+
},
21632168
"secondary_filters": "Sekundární filtry",
21642169
"show_less": "Zobrazit méně",
21652170
"show_message_previews": "Zobrazit náhledy zpráv",
@@ -2636,6 +2641,7 @@
26362641
"discovery_needs_terms_title": "Umožněte lidem, aby vás našli",
26372642
"display_name": "Zobrazovaný název",
26382643
"display_name_error": "Nelze nastavit zobrazovaný název",
2644+
"email_adding_unsupported_by_hs": "Tento domovský server nepodporuje přidávání e-mailových adres do vašeho účtu.",
26392645
"email_address_in_use": "Tato e-mailová adresa je již používána",
26402646
"email_address_label": "E-mailová adresa",
26412647
"email_not_verified": "Vaše e-mailová adresa ještě nebyla ověřena",
@@ -2660,7 +2666,9 @@
26602666
"error_share_msisdn_discovery": "Nepovedlo se nasdílet telefonní číslo",
26612667
"identity_server_no_token": "Nebyl nalezen žádný přístupový token identity",
26622668
"identity_server_not_set": "Server identit není nastaven",
2669+
"invalid_phone_number": "Zadané telefonní číslo se nezdá být platné.",
26632670
"language_section": "Jazyk",
2671+
"msisdn_adding_unsupported_by_hs": "Tento domovský server nepodporuje přidávání telefonních čísel do vašeho účtu.",
26642672
"msisdn_in_use": "Toto telefonní číslo je již používáno",
26652673
"msisdn_label": "Telefonní číslo",
26662674
"msisdn_verification_field_label": "Ověřovací kód",
@@ -3233,7 +3241,7 @@
32333241
"heading_without_query": "Hledat",
32343242
"join_button_text": "Vstoupit do %(roomAddress)s",
32353243
"keyboard_scroll_hint": "K pohybu použijte <arrows/>",
3236-
"message_search_section_title": "Další vyhledávání",
3244+
"messages_label": "Zprávy",
32373245
"other_rooms_in_space": "Další místnosti v %(spaceName)s",
32383246
"public_rooms_label": "Veřejné místnosti",
32393247
"public_spaces_label": "Veřejné prostory",
@@ -3243,7 +3251,6 @@
32433251
"result_may_be_hidden_privacy_warning": "Některé výsledky mohou být z důvodu ochrany soukromí skryté",
32443252
"result_may_be_hidden_warning": "Některé výsledky mohou být skryté",
32453253
"search_dialog": "Dialogové okno hledání",
3246-
"search_messages_hint": "Pro vyhledávání zpráv hledejte tuto ikonu v horní části místnosti <icon/>",
32473254
"spaces_title": "Prostory, ve kterých se nacházíte",
32483255
"start_group_chat_button": "Zahájit skupinový chat"
32493256
},
@@ -3292,9 +3299,7 @@
32923299
"threads_activity_centre": {
32933300
"header": "Aktivita vláken",
32943301
"no_rooms_with_threads_notifs": "Zatím nemáte k dispozici místnosti s upozorněními na vlákna.",
3295-
"no_rooms_with_unread_threads": "Zatím nemáte místnosti s nepřečtenými vlákny.",
3296-
"release_announcement_description": "Oznámení o vláknech se přesunula, od nynějška je najdete zde.",
3297-
"release_announcement_header": "Centrum aktivity vláken"
3302+
"no_rooms_with_unread_threads": "Zatím nemáte místnosti s nepřečtenými vlákny."
32983303
},
32993304
"time": {
33003305
"about_day_ago": "před jedním dnem",
@@ -3805,10 +3810,11 @@
38053810
"unavailable": "Nedostupné"
38063811
},
38073812
"update_room_access_modal": {
3808-
"description": "Chcete-li vytvořit sdílený odkaz, musíte hostům povolit, aby se k této místnosti připojili. Může se tak stát, že místnost bude méně bezpečná. Po dokončení hovoru můžete místnost opět učinit soukromou.",
3809-
"dont_change_description": "Případně můžete hovor uskutečnit v oddělené místnosti.",
3813+
"description": "Chcete-li vytvořit sdílený odkaz, nastavte tuto místnost <b>veřejnou</b> nebo povolte možnost, aby uživatelé <b>požádali o vstup</b>. To umožňuje hostům připojit se, aniž by byli pozváni.",
3814+
"dont_change_description": "Pokud nechcete změnit přístup k této místnosti, můžete pro odkaz na hovor vytvořit novou místnost.",
38103815
"no_change": "Nechci měnit úroveň přístupu.",
3811-
"title": "Změna úrovně přístupu do místnosti"
3816+
"revert_access_description": "(Tuto hodnotu lze vrátit na předchozí hodnotu v Nastavení místnosti: <b>Zabezpečení a soukromí</b> / <b>Přístup</b>)",
3817+
"title": "Povolit hostům vstup do této místnosti"
38123818
},
38133819
"upload_failed_generic": "Soubor '%(fileName)s' se nepodařilo nahrát.",
38143820
"upload_failed_size": "Soubor '%(fileName)s' je větší než povoluje limit domovského serveru",

src/i18n/strings/cy.json

+1-8
Original file line numberDiff line numberDiff line change
@@ -989,7 +989,6 @@
989989
"accepting": "Yn derbyn…",
990990
"after_new_login": {
991991
"device_verified": "Dyfais wedi'i dilysu",
992-
"reset_confirmation": "Ailosod allweddi dilysu mewn gwirionedd?",
993992
"skip_verification": "Hepgor dilysu am y tro",
994993
"unable_to_verify": "Methu â gwirio'r ddyfais hon",
995994
"verify_this_device": "Dilyswch y ddyfais hon"
@@ -1060,8 +1059,6 @@
10601059
"verify_emoji_prompt": "Gwiriwch trwy gymharu emoji unigryw.",
10611060
"verify_emoji_prompt_qr": "Os na allwch sganio'r cod uchod, gwiriwch trwy gymharu emoji unigryw.",
10621061
"verify_later": "Byddaf yn gwirio yn ddiweddarach",
1063-
"verify_reset_warning_1": "Nid oes modd dadwneud ailosod eich allweddi dilysu. Ar ôl ailosod, ni fydd gennych fynediad i hen negeseuon wedi'u hamgryptio, a bydd unrhyw ffrindiau sydd wedi'ch dilysu o'r blaen yn gweld rhybuddion diogelwch nes i chi ail-ddilysu gyda nhw.",
1064-
"verify_reset_warning_2": "Mynd ymlaen dim ond os ydych yn siŵr eich bod wedi colli eich holl ddyfeisiau eraill a'ch Allwedd Adfer.",
10651062
"verify_using_device": "Gwiriwch gyda dyfais arall",
10661063
"verify_using_key": "Dilyswch gydag Allwedd Adfer",
10671064
"verify_using_key_or_phrase": "Dilyswch gydag Allwedd Adfer neu Ymadrodd",
@@ -3070,7 +3067,6 @@
30703067
"heading_without_query": "Chwilio am",
30713068
"join_button_text": "Ymuno â %(roomAddress)s",
30723069
"keyboard_scroll_hint": "Defnydd<arrows/> i sgrolio",
3073-
"message_search_section_title": "Chwiliadau eraill",
30743070
"other_rooms_in_space": "Ystafelloedd eraill yn %(spaceName)s",
30753071
"public_rooms_label": "Ystafelloedd cyhoeddus",
30763072
"public_spaces_label": "Gofodau cyhoeddus",
@@ -3080,7 +3076,6 @@
30803076
"result_may_be_hidden_privacy_warning": "Gall rhai canlyniadau gael eu cuddio er preifatrwydd",
30813077
"result_may_be_hidden_warning": "Efallai y bydd rhai canlyniadau wedi'u cuddio",
30823078
"search_dialog": "Deialog Chwilio",
3083-
"search_messages_hint": "I chwilio negeseuon, edrychwch am yr eicon hwn ar frig ystafell<icon/>",
30843079
"spaces_title": "Gofodau rydych chi ynddyn nhw",
30853080
"start_group_chat_button": "Dechreuwch sgwrs grŵp"
30863081
},
@@ -3125,9 +3120,7 @@
31253120
"threads_activity_centre": {
31263121
"header": "Gweithgaredd edafedd",
31273122
"no_rooms_with_threads_notifs": "Nid oes gennych chi ystafelloedd gyda hysbysiadau edafedd eto.",
3128-
"no_rooms_with_unread_threads": "Nid oes gennych chi ystafelloedd ag edafedd heb eu darllen eto.",
3129-
"release_announcement_description": "Mae hysbysiadau edafedd wedi symud, dewch o hyd iddyn nhw yma o hyn ymlaen.",
3130-
"release_announcement_header": "Canolfan Gweithgareddau Edafedd"
3123+
"no_rooms_with_unread_threads": "Nid oes gennych chi ystafelloedd ag edafedd heb eu darllen eto."
31313124
},
31323125
"time": {
31333126
"about_day_ago": "tua diwrnod yn ôl",

0 commit comments

Comments
 (0)