mirror of
https://github.com/vector-im/element-call.git
synced 2026-10-16 23:45:50 +00:00
use the matrixRtcSdk
This commit is contained in:
+47
-17
@@ -16,9 +16,8 @@ import {
|
||||
type Room,
|
||||
SyncState,
|
||||
} from "matrix-js-sdk";
|
||||
import { ConnectionState, type Room as LivekitRoom } from "livekit-client";
|
||||
|
||||
import { E2eeType } from "../e2ee/e2eeType";
|
||||
import { E2eeType } from "@element-hq/matrixrtc-sdk";
|
||||
import {
|
||||
type CallViewModel,
|
||||
createCallViewModel$,
|
||||
@@ -26,20 +25,22 @@ import {
|
||||
} from "../state/CallViewModel/CallViewModel";
|
||||
import {
|
||||
mockConfig,
|
||||
mockLivekitRoom,
|
||||
mockLocalParticipant,
|
||||
mockMatrixRoom,
|
||||
mockMatrixRTCClient,
|
||||
mockMediaDevices,
|
||||
mockMemberMedia,
|
||||
mockMuteStates,
|
||||
MockRTCSession,
|
||||
mockRTCMember,
|
||||
testScope,
|
||||
} from "./test";
|
||||
import { type MediaDevices } from "../state/MediaDevices";
|
||||
import { aliceRtcMember, localRtcMember } from "./test-fixtures";
|
||||
import { type RaisedHandInfo, type ReactionInfo } from "../reactions";
|
||||
import { constant } from "../state/Behavior";
|
||||
import { MatrixRTCMode } from "../config/ConfigOptions";
|
||||
import { constant } from "@element-hq/matrixrtc-sdk";
|
||||
import { map } from "rxjs";
|
||||
import { createCallFooterViewModel } from "../components/CallFooterViewModel";
|
||||
import { createSentCallNotification$ } from "../state/CallViewModel/CallNotificationLifecycle";
|
||||
import { HeaderStyle } from "../UrlParams";
|
||||
import { type FooterSnapshot } from "../components/CallFooter";
|
||||
import { type ViewModel } from "../state/ViewModel";
|
||||
@@ -159,29 +160,58 @@ export function getBasicCallViewModelEnvironment(
|
||||
const scope = testScope();
|
||||
const muteStates = mockMuteStates();
|
||||
const mediaDevices = mediaDevicesOverride ?? mockMediaDevices({});
|
||||
// Every membership is a member whose media has arrived
|
||||
const rtcClient = mockMatrixRTCClient(scope, {
|
||||
localMember$: scope.behavior(
|
||||
rtcMemberships$.pipe(
|
||||
map((memberships) =>
|
||||
memberships.some((m) => m.userId === localRtcMember.userId)
|
||||
? mockRTCMember(true, {
|
||||
membership: localRtcMember,
|
||||
roomMember: members.find(
|
||||
(m) => m.userId === localRtcMember.userId,
|
||||
),
|
||||
transportUrl: "https://example.com",
|
||||
media$: constant(mockMemberMedia({ local: true })),
|
||||
})
|
||||
: null,
|
||||
),
|
||||
),
|
||||
),
|
||||
remoteMembers$: scope.behavior(
|
||||
rtcMemberships$.pipe(
|
||||
map((memberships) =>
|
||||
memberships
|
||||
.filter((m) => m.userId !== localRtcMember.userId)
|
||||
.map((membership) =>
|
||||
mockRTCMember(false, {
|
||||
membership,
|
||||
roomMember: members.find((m) => m.userId === membership.userId),
|
||||
transportUrl: "https://example.com",
|
||||
media$: constant(mockMemberMedia()),
|
||||
}),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
});
|
||||
const vm = createCallViewModel$(
|
||||
scope,
|
||||
rtcSession.asMockedSession(),
|
||||
rtcClient,
|
||||
matrixRoom,
|
||||
mediaDevices,
|
||||
muteStates,
|
||||
{
|
||||
encryptionSystem: { kind: E2eeType.PER_PARTICIPANT },
|
||||
livekitRoomFactory: (): LivekitRoom =>
|
||||
mockLivekitRoom({
|
||||
localParticipant: mockLocalParticipant({ identity: "" }),
|
||||
remoteParticipants: new Map(),
|
||||
disconnect: async () => Promise.resolve(),
|
||||
setE2EEEnabled: async () => Promise.resolve(),
|
||||
}),
|
||||
connectionState$: constant(ConnectionState.Connected),
|
||||
matrixRTCMode: MatrixRTCMode.Compatibility,
|
||||
sentCallNotification$: createSentCallNotification$(
|
||||
scope,
|
||||
rtcSession.asMockedSession(),
|
||||
),
|
||||
windowSize$: constant({ width: 1000, height: 800 }),
|
||||
...callViewModelOptions,
|
||||
},
|
||||
handRaisedSubject$,
|
||||
reactionsSubject$,
|
||||
constant({ processor: undefined, supported: false }),
|
||||
);
|
||||
const footerVm = createCallFooterViewModel(
|
||||
testScope(),
|
||||
|
||||
Reference in New Issue
Block a user