From 3d0bfaefe8743bd90c9b0267faf3d490219f6496 Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Mon, 2 Dec 2024 13:47:35 +0000 Subject: [PATCH] Make the purpose of BaseMediaViewModel.local explicit --- src/state/MediaViewModel.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/state/MediaViewModel.ts b/src/state/MediaViewModel.ts index 32ab7747..ceaca57c 100644 --- a/src/state/MediaViewModel.ts +++ b/src/state/MediaViewModel.ts @@ -217,6 +217,11 @@ abstract class BaseMediaViewModel extends ViewModel { public readonly encryptionStatus: Observable; + /** + * Whether this media corresponds to the local participant. + */ + public abstract readonly local: boolean; + public constructor( /** * An opaque identifier for this media. @@ -392,13 +397,16 @@ abstract class BaseUserMediaViewModel extends BaseMediaViewModel { public toggleFitContain(): void { this._cropVideo.next(!this._cropVideo.value); } + + public get local(): boolean { + return this instanceof LocalUserMediaViewModel; + } } /** * The local participant's user media. */ export class LocalUserMediaViewModel extends BaseUserMediaViewModel { - public readonly local = true; /** * Whether the video should be mirrored. */ @@ -438,8 +446,6 @@ export class LocalUserMediaViewModel extends BaseUserMediaViewModel { * A remote participant's user media. */ export class RemoteUserMediaViewModel extends BaseUserMediaViewModel { - public readonly local = false; - private readonly locallyMutedToggle = new Subject(); private readonly localVolumeAdjustment = new Subject(); private readonly localVolumeCommit = new Subject();