From f6efdcf96b0e64c2816cadebae8f7561a0cf0f97 Mon Sep 17 00:00:00 2001 From: RMidhunSuresh <hi@midhun.dev> Date: Thu, 17 Feb 2022 16:08:03 +0530 Subject: [PATCH] Use observeRoomStatus --- src/viewmodels/ChatterboxViewModel.ts | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/src/viewmodels/ChatterboxViewModel.ts b/src/viewmodels/ChatterboxViewModel.ts index 04d6b36..92f8826 100644 --- a/src/viewmodels/ChatterboxViewModel.ts +++ b/src/viewmodels/ChatterboxViewModel.ts @@ -1,4 +1,4 @@ -import { RoomViewModel, ViewModel, ComposerViewModel} from "hydrogen-view-sdk"; +import { RoomViewModel, ViewModel, ComposerViewModel, RoomStatus} from "hydrogen-view-sdk"; export class ChatterboxViewModel extends ViewModel { private _messageComposerViewModel?: typeof ComposerViewModel; @@ -52,13 +52,10 @@ export class ChatterboxViewModel extends ViewModel { avatar: undefined, invites: [userId], }); - await this._waitForRoomCreation(roomBeingCreated); + const roomStatusObservable = await this._session.observeRoomStatus(roomBeingCreated.id); + await roomStatusObservable.waitFor(status => status === (RoomStatus.BeingCreated | RoomStatus.Replaced)).promise; const roomId = roomBeingCreated.roomId; room = this._session.rooms.get(roomId); - if (!room) { - await this._waitForRoomFromSync(roomId); - room = this._session.rooms.get(roomId); - } return room; } @@ -76,6 +73,7 @@ export class ChatterboxViewModel extends ViewModel { } private _waitForRoomFromSync(roomId: string): Promise<void> { + console.log("waiting for room from sync"); let resolve: () => void; const promise: Promise<void> = new Promise(r => { resolve = r; }) const subscription = { @@ -92,17 +90,6 @@ export class ChatterboxViewModel extends ViewModel { return promise; } - private _waitForRoomCreation(roomBeingCreated): Promise<void> { - let resolve: () => void; - const promise: Promise<void> = new Promise(r => { resolve = r; }) - roomBeingCreated.on("change", () => { - if (roomBeingCreated.roomId) { - resolve(); - } - }); - return promise; - } - get timelineViewModel() { return this._roomViewModel?.timelineViewModel; } -- GitLab