Make the type of participant$ stricter

It is, in fact, required to be a behavior.
This commit is contained in:
Robin
2026-02-18 14:01:55 +01:00
parent 9d37125677
commit bc238778ad
2 changed files with 7 additions and 7 deletions

View File

@@ -259,7 +259,7 @@ abstract class BaseMediaViewModel {
public readonly userId: string, public readonly userId: string,
// We don't necessarily have a participant if a user connects via MatrixRTC but not (yet) through // We don't necessarily have a participant if a user connects via MatrixRTC but not (yet) through
// livekit. // livekit.
protected readonly participant$: Observable< protected readonly participant$: Behavior<
LocalParticipant | RemoteParticipant | null LocalParticipant | RemoteParticipant | null
>, >,
@@ -410,7 +410,7 @@ abstract class BaseUserMediaViewModel extends BaseMediaViewModel {
* The expected identity of the LiveKit participant. Exposed for debugging. * The expected identity of the LiveKit participant. Exposed for debugging.
*/ */
public readonly rtcBackendIdentity: string, public readonly rtcBackendIdentity: string,
participant$: Observable<LocalParticipant | RemoteParticipant | null>, participant$: Behavior<LocalParticipant | RemoteParticipant | null>,
encryptionSystem: EncryptionSystem, encryptionSystem: EncryptionSystem,
livekitRoom$: Behavior<LivekitRoom | undefined>, livekitRoom$: Behavior<LivekitRoom | undefined>,
focusUrl$: Behavior<string | undefined>, focusUrl$: Behavior<string | undefined>,
@@ -678,7 +678,7 @@ export class RemoteUserMediaViewModel extends BaseUserMediaViewModel {
id: string, id: string,
userId: string, userId: string,
rtcBackendIdentity: string, rtcBackendIdentity: string,
participant$: Observable<RemoteParticipant | null>, participant$: Behavior<RemoteParticipant | null>,
encryptionSystem: EncryptionSystem, encryptionSystem: EncryptionSystem,
livekitRoom$: Behavior<LivekitRoom | undefined>, livekitRoom$: Behavior<LivekitRoom | undefined>,
focusUrl$: Behavior<string | undefined>, focusUrl$: Behavior<string | undefined>,
@@ -780,7 +780,7 @@ export class ScreenShareViewModel extends BaseMediaViewModel {
scope: ObservableScope, scope: ObservableScope,
id: string, id: string,
userId: string, userId: string,
participant$: Observable<LocalParticipant | RemoteParticipant>, participant$: Behavior<LocalParticipant | RemoteParticipant>,
encryptionSystem: EncryptionSystem, encryptionSystem: EncryptionSystem,
livekitRoom$: Behavior<LivekitRoom | undefined>, livekitRoom$: Behavior<LivekitRoom | undefined>,
focusUrl$: Behavior<string | undefined>, focusUrl$: Behavior<string | undefined>,

View File

@@ -4,7 +4,7 @@ Copyright 2025 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE in the repository root for full details. Please see LICENSE in the repository root for full details.
*/ */
import { of } from "rxjs";
import { import {
type LocalParticipant, type LocalParticipant,
type RemoteParticipant, type RemoteParticipant,
@@ -14,7 +14,7 @@ import {
import { type ObservableScope } from "./ObservableScope.ts"; import { type ObservableScope } from "./ObservableScope.ts";
import { ScreenShareViewModel } from "./MediaViewModel.ts"; import { ScreenShareViewModel } from "./MediaViewModel.ts";
import type { EncryptionSystem } from "../e2ee/sharedKeyManagement.ts"; import type { EncryptionSystem } from "../e2ee/sharedKeyManagement.ts";
import type { Behavior } from "./Behavior.ts"; import { constant, type Behavior } from "./Behavior.ts";
/** /**
* A screen share media item to be presented in a tile. This is a thin wrapper * A screen share media item to be presented in a tile. This is a thin wrapper
@@ -40,7 +40,7 @@ export class ScreenShare {
this.scope, this.scope,
id, id,
userId, userId,
of(participant), constant(participant),
encryptionSystem, encryptionSystem,
livekitRoom$, livekitRoom$,
focusUrl$, focusUrl$,