Use the initialValue parameter of 'behavior' instead of startWith

This commit is contained in:
Robin
2025-07-12 00:28:24 -04:00
parent 2b76d3dd70
commit c34516e871
3 changed files with 12 additions and 13 deletions

View File

@@ -403,7 +403,7 @@ export class CallViewModel extends ViewModel {
*/
private readonly rawRemoteParticipants$ = this.scope.behavior<
RemoteParticipant[]
>(connectedParticipantsObserver(this.livekitRoom).pipe(startWith([])));
>(connectedParticipantsObserver(this.livekitRoom), []);
/**
* Lists of RemoteParticipants to "hold" on display, even if LiveKit claims that
@@ -889,9 +889,7 @@ export class CallViewModel extends ViewModel {
distinctUntilChanged(),
);
private readonly pipEnabled$: Observable<boolean> = setPipEnabled$.pipe(
startWith(false),
);
private readonly pipEnabled$ = this.scope.behavior(setPipEnabled$, false);
private readonly naturalWindowMode$ = this.scope.behavior<WindowMode>(
fromEvent(window, "resize").pipe(

View File

@@ -122,8 +122,8 @@ function availableRawDevices$(
)
: devices$,
),
startWith([]),
),
[],
);
}
@@ -373,10 +373,8 @@ export class MediaDevices {
// API. This flag never resets to false, because once permissions are granted
// the first time, the user won't be prompted again until reload of the page.
private readonly usingNames$ = this.scope.behavior(
this.deviceNamesRequest$.pipe(
map(() => true),
startWith(false),
),
this.deviceNamesRequest$.pipe(map(() => true)),
false,
);
public readonly audioInput: MediaDevice<
DeviceLabel,

View File

@@ -4,7 +4,7 @@ Copyright 2023, 2024 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE in the repository root for full details.
*/
import { map, type Observable, of, type SchedulerLike, startWith } from "rxjs";
import { map, type Observable, of, type SchedulerLike } from "rxjs";
import { type RunHelpers, TestScheduler } from "rxjs/testing";
import { expect, vi, vitest } from "vitest";
import {
@@ -125,9 +125,12 @@ export function withTestScheduler(
values === undefined ? (initialMarble as T) : values[initialMarble];
// The remainder of the marble diagram should start on frame 1
return scope.behavior(
helpers
.hot(`-${marbles.slice(initialMarbleIndex + 1)}`, values, error)
.pipe(startWith(initialValue)),
helpers.hot(
`-${marbles.slice(initialMarbleIndex + 1)}`,
values,
error,
),
initialValue,
);
},
}),