fix playwright tests
This commit is contained in:
@@ -99,6 +99,7 @@ import { createHomeserverConnected$ } from "./localMember/HomeserverConnected.ts
|
||||
import {
|
||||
createLocalMembership$,
|
||||
enterRTCSession,
|
||||
TransportState,
|
||||
} from "./localMember/LocalMember.ts";
|
||||
import { createLocalTransport$ } from "./localMember/LocalTransport.ts";
|
||||
import {
|
||||
@@ -577,17 +578,6 @@ export function createCallViewModel$(
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Whether various media/event sources should pretend to be disconnected from
|
||||
* all network input, even if their connection still technically works.
|
||||
*/
|
||||
// We do this when the app is in the 'reconnecting' state, because it might be
|
||||
// that the LiveKit connection is still functional while the homeserver is
|
||||
// down, for example, and we want to avoid making people worry that the app is
|
||||
// in a split-brained state.
|
||||
// DISCUSSION own membership manager ALSO this probably can be simplifis
|
||||
const reconnecting$ = localMembership.reconnecting$;
|
||||
|
||||
const audioParticipants$ = scope.behavior(
|
||||
matrixLivekitMembers$.pipe(
|
||||
switchMap((membersWithEpoch) => {
|
||||
@@ -635,7 +625,7 @@ export function createCallViewModel$(
|
||||
);
|
||||
|
||||
const handsRaised$ = scope.behavior(
|
||||
handsRaisedSubject$.pipe(pauseWhen(reconnecting$)),
|
||||
handsRaisedSubject$.pipe(pauseWhen(localMembership.reconnecting$)),
|
||||
);
|
||||
|
||||
const reactions$ = scope.behavior(
|
||||
@@ -648,7 +638,7 @@ export function createCallViewModel$(
|
||||
]),
|
||||
),
|
||||
),
|
||||
pauseWhen(reconnecting$),
|
||||
pauseWhen(localMembership.reconnecting$),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -739,7 +729,7 @@ export function createCallViewModel$(
|
||||
livekitRoom$,
|
||||
focusUrl$,
|
||||
mediaDevices,
|
||||
reconnecting$,
|
||||
localMembership.reconnecting$,
|
||||
displayName$,
|
||||
matrixMemberMetadataStore.createAvatarUrlBehavior$(userId),
|
||||
handsRaised$.pipe(map((v) => v[participantId]?.time ?? null)),
|
||||
@@ -1422,6 +1412,37 @@ export function createCallViewModel$(
|
||||
// reassigned here to make it publicly accessible
|
||||
const toggleScreenSharing = localMembership.toggleScreenSharing;
|
||||
|
||||
const errors$ = scope.behavior<{
|
||||
transportError?: ElementCallError;
|
||||
matrixError?: ElementCallError;
|
||||
connectionError?: ElementCallError;
|
||||
publishError?: ElementCallError;
|
||||
} | null>(
|
||||
localMembership.localMemberState$.pipe(
|
||||
map((value) => {
|
||||
const returnObject: {
|
||||
transportError?: ElementCallError;
|
||||
matrixError?: ElementCallError;
|
||||
connectionError?: ElementCallError;
|
||||
publishError?: ElementCallError;
|
||||
} = {};
|
||||
if (value instanceof ElementCallError) return { transportError: value };
|
||||
if (value === TransportState.Waiting) return null;
|
||||
if (value.matrix instanceof ElementCallError)
|
||||
returnObject.matrixError = value.matrix;
|
||||
if (value.media instanceof ElementCallError)
|
||||
returnObject.publishError = value.media;
|
||||
else if (
|
||||
typeof value.media === "object" &&
|
||||
value.media.connection instanceof ElementCallError
|
||||
)
|
||||
returnObject.connectionError = value.media.connection;
|
||||
return returnObject;
|
||||
}),
|
||||
),
|
||||
null,
|
||||
);
|
||||
|
||||
return {
|
||||
autoLeave$: autoLeave$,
|
||||
callPickupState$: callPickupState$,
|
||||
@@ -1438,8 +1459,16 @@ export function createCallViewModel$(
|
||||
unhoverScreen: (): void => screenUnhover$.next(),
|
||||
|
||||
fatalError$: scope.behavior(
|
||||
localMembership.localMemberState$.pipe(
|
||||
filter((v) => v instanceof ElementCallError),
|
||||
errors$.pipe(
|
||||
map((errors) => {
|
||||
return (
|
||||
errors?.transportError ??
|
||||
errors?.matrixError ??
|
||||
errors?.connectionError ??
|
||||
null
|
||||
);
|
||||
}),
|
||||
filter((error) => error !== null),
|
||||
),
|
||||
null,
|
||||
),
|
||||
@@ -1472,7 +1501,7 @@ export function createCallViewModel$(
|
||||
showFooter$: showFooter$,
|
||||
earpieceMode$: earpieceMode$,
|
||||
audioOutputSwitcher$: audioOutputSwitcher$,
|
||||
reconnecting$: reconnecting$,
|
||||
reconnecting$: localMembership.reconnecting$,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user