From 53c0fc2934a170c5f07f84275df35f50c4d220bf Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Tue, 28 Mar 2023 15:08:47 +0530 Subject: [PATCH] Fix rebase --- src/domain/navigation/index.ts | 2 +- src/domain/session/SessionViewModel.js | 13 ++++++------- .../session/toast/ToastCollectionViewModel.ts | 16 +++++++++++----- .../VerificationToastCollectionViewModel.ts | 15 +++++---------- .../VerificationToastNotificationViewModel.ts | 2 +- .../verification/DeviceVerificationViewModel.ts | 2 +- .../web/ui/session/toast/ToastCollectionView.ts | 3 ++- 7 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/domain/navigation/index.ts b/src/domain/navigation/index.ts index 5904e715..4a573e15 100644 --- a/src/domain/navigation/index.ts +++ b/src/domain/navigation/index.ts @@ -34,7 +34,7 @@ export type SegmentType = { "details": true; "members": true; "member": string; - "device-verification": string; + "device-verification": string | boolean; "join-room": true; }; diff --git a/src/domain/session/SessionViewModel.js b/src/domain/session/SessionViewModel.js index 689f7c01..b80c1c05 100644 --- a/src/domain/session/SessionViewModel.js +++ b/src/domain/session/SessionViewModel.js @@ -97,13 +97,12 @@ export class SessionViewModel extends ViewModel { })); this._updateJoinRoom(joinRoom.get()); - if (this._client.session.features.crossSigning) { - - const verification = this.navigation.observe("device-verification"); - this.track(verification.subscribe((txnId) => { - this._updateVerification(txnId); - })); - this._updateVerification(verification.get()); + if (this.features.crossSigning) { + const verification = this.navigation.observe("device-verification"); + this.track(verification.subscribe((txnId) => { + this._updateVerification(txnId); + })); + this._updateVerification(verification.get()); } const lightbox = this.navigation.observe("lightbox"); diff --git a/src/domain/session/toast/ToastCollectionViewModel.ts b/src/domain/session/toast/ToastCollectionViewModel.ts index 6b2bdceb..0d31b6ee 100644 --- a/src/domain/session/toast/ToastCollectionViewModel.ts +++ b/src/domain/session/toast/ToastCollectionViewModel.ts @@ -33,10 +33,16 @@ export class ToastCollectionViewModel extends ViewModel { constructor(options: Options) { super(options); const session = this.getOption("session"); - const vms: IToastCollection["toastViewModels"][] = [ - this.track(new CallToastCollectionViewModel(this.childOptions({ session }))), - this.track(new VerificationToastCollectionViewModel(this.childOptions({session}))), - ].map(vm => vm.toastViewModels); - this.toastViewModels = new ConcatList(...vms); + const collectionVms: IToastCollection[] = []; + if (this.features.calls) { + collectionVms.push(this.track(new CallToastCollectionViewModel(this.childOptions({ session })))); + } + if (this.features.crossSigning) { + collectionVms.push(this.track(new VerificationToastCollectionViewModel(this.childOptions({ session })))); + } + const vms: IToastCollection["toastViewModels"][] = collectionVms.map(vm => vm.toastViewModels); + if (vms.length !== 0) { + this.toastViewModels = new ConcatList(...vms); + } } } diff --git a/src/domain/session/toast/verification/VerificationToastCollectionViewModel.ts b/src/domain/session/toast/verification/VerificationToastCollectionViewModel.ts index d6b0795b..5dfb76eb 100644 --- a/src/domain/session/toast/verification/VerificationToastCollectionViewModel.ts +++ b/src/domain/session/toast/verification/VerificationToastCollectionViewModel.ts @@ -32,18 +32,13 @@ export class VerificationToastCollectionViewModel extends ViewModel { + this.track(crossSigning.receivedSASVerifications.subscribe(this)); + }) + ); } - async observeSASRequests() { - const session = this.getOption("session"); - if (this.features.crossSigning) { - // todo: hack to wait for crossSigning; remove - await new Promise(r => setTimeout(r, 3000)); - const map = session.crossSigning.receivedSASVerifications; - this.track(map.subscribe(this)); - } - } async onAdd(_, request: SASRequest) { const dismiss = () => { diff --git a/src/domain/session/toast/verification/VerificationToastNotificationViewModel.ts b/src/domain/session/toast/verification/VerificationToastNotificationViewModel.ts index b3d7de35..9bf1e2f7 100644 --- a/src/domain/session/toast/verification/VerificationToastNotificationViewModel.ts +++ b/src/domain/session/toast/verification/VerificationToastNotificationViewModel.ts @@ -22,7 +22,7 @@ type Options = { } & BaseClassOptions; type MinimumNeededSegmentType = { - "device-verification": string; + "device-verification": string | boolean; }; export class VerificationToastNotificationViewModel = Options> extends BaseToastNotificationViewModel { diff --git a/src/domain/session/verification/DeviceVerificationViewModel.ts b/src/domain/session/verification/DeviceVerificationViewModel.ts index 58debd28..33be113f 100644 --- a/src/domain/session/verification/DeviceVerificationViewModel.ts +++ b/src/domain/session/verification/DeviceVerificationViewModel.ts @@ -51,7 +51,7 @@ export class DeviceVerificationViewModel extends ErrorReportViewModel { - const crossSigning = this.session.crossSigning; + const crossSigning = this.session.crossSigning.get(); this.sas = crossSigning.startVerification(requestOrUserId, log); this.addEventListeners(); if (typeof requestOrUserId === "string") { diff --git a/src/platform/web/ui/session/toast/ToastCollectionView.ts b/src/platform/web/ui/session/toast/ToastCollectionView.ts index cf4fd58f..18a9c8ed 100644 --- a/src/platform/web/ui/session/toast/ToastCollectionView.ts +++ b/src/platform/web/ui/session/toast/ToastCollectionView.ts @@ -41,8 +41,9 @@ export class ToastCollectionView extends TemplateView list: vm.toastViewModels, parentProvidesUpdates: false, }, (vm: CallToastNotificationViewModel) => toastViewModelToView(vm)); + return t.div({ className: "ToastCollectionView" }, [ - t.view(view), + t.if(vm => !!vm.toastViewModels, (t) => t.view(view)), ]); } }