Replace deprecated CallMembership.sender with userId
This commit is contained in:
@@ -305,7 +305,7 @@ function withCallViewModel(
|
||||
const room = mockMatrixRoom({
|
||||
client: new (class extends EventEmitter {
|
||||
public getUserId(): string | undefined {
|
||||
return localRtcMember.sender;
|
||||
return localRtcMember.userId;
|
||||
}
|
||||
public getDeviceId(): string {
|
||||
return localRtcMember.deviceId;
|
||||
@@ -1070,7 +1070,7 @@ it("should rank raised hands above video feeds and below speakers and presenters
|
||||
},
|
||||
b: () => {
|
||||
raisedHands$.next({
|
||||
[`${bobRtcMember.sender}:${bobRtcMember.deviceId}`]: {
|
||||
[`${bobRtcMember.userId}:${bobRtcMember.deviceId}`]: {
|
||||
time: new Date(),
|
||||
reactionEventId: "",
|
||||
membershipEventId: "",
|
||||
|
||||
@@ -315,7 +315,7 @@ export class CallViewModel extends ViewModel {
|
||||
const oldestMembership =
|
||||
this.matrixRTCSession.getOldestMembership();
|
||||
const remote = memberships.flatMap((m) => {
|
||||
if (m.sender === this.userId && m.deviceId === this.deviceId)
|
||||
if (m.userId === this.userId && m.deviceId === this.deviceId)
|
||||
return [];
|
||||
const t = m.getTransport(oldestMembership ?? m);
|
||||
return t && isLivekitTransport(t)
|
||||
@@ -664,7 +664,7 @@ export class CallViewModel extends ViewModel {
|
||||
| undefined;
|
||||
member: RoomMember;
|
||||
}[] = ps.map(({ participant, membership }) => ({
|
||||
id: `${membership.sender}:${membership.deviceId}`,
|
||||
id: `${membership.userId}:${membership.deviceId}`,
|
||||
participant,
|
||||
member:
|
||||
getRoomMemberFromRtcMember(
|
||||
@@ -741,7 +741,7 @@ export class CallViewModel extends ViewModel {
|
||||
|
||||
// We only consider RTC members for disambiguation as they are the only visible members.
|
||||
for (const rtcMember of memberships) {
|
||||
const matrixIdentifier = `${rtcMember.sender}:${rtcMember.deviceId}`;
|
||||
const matrixIdentifier = `${rtcMember.userId}:${rtcMember.deviceId}`;
|
||||
const { member } = getRoomMemberFromRtcMember(rtcMember, room);
|
||||
if (!member) {
|
||||
logger.error(
|
||||
@@ -894,8 +894,8 @@ export class CallViewModel extends ViewModel {
|
||||
pairwise(),
|
||||
filter(
|
||||
([prev, current]) =>
|
||||
current.every((m) => m.sender === this.userId) &&
|
||||
prev.some((m) => m.sender !== this.userId),
|
||||
current.every((m) => m.userId === this.userId) &&
|
||||
prev.some((m) => m.userId !== this.userId),
|
||||
),
|
||||
map(() => {}),
|
||||
);
|
||||
@@ -970,7 +970,7 @@ export class CallViewModel extends ViewModel {
|
||||
* Whether some Matrix user other than ourself is joined to the call.
|
||||
*/
|
||||
private readonly someoneElseJoined$ = this.memberships$.pipe(
|
||||
map((ms) => ms.some((m) => m.sender !== this.userId)),
|
||||
map((ms) => ms.some((m) => m.userId !== this.userId)),
|
||||
) as Behavior<boolean>;
|
||||
|
||||
/**
|
||||
@@ -1971,20 +1971,18 @@ function getRoomMemberFromRtcMember(
|
||||
rtcMember: CallMembership,
|
||||
room: MatrixRoom,
|
||||
): { id: string; member: RoomMember | undefined } {
|
||||
// WARN! This is not exactly the sender but the user defined in the state key.
|
||||
// This will be available once we change to the new "member as object" format in the MatrixRTC object.
|
||||
let id = rtcMember.sender + ":" + rtcMember.deviceId;
|
||||
let id = rtcMember.userId + ":" + rtcMember.deviceId;
|
||||
|
||||
if (!rtcMember.sender) {
|
||||
if (!rtcMember.userId) {
|
||||
return { id, member: undefined };
|
||||
}
|
||||
if (
|
||||
rtcMember.sender === room.client.getUserId() &&
|
||||
rtcMember.userId === room.client.getUserId() &&
|
||||
rtcMember.deviceId === room.client.getDeviceId()
|
||||
) {
|
||||
id = "local";
|
||||
}
|
||||
|
||||
const member = room.getMember(rtcMember.sender) ?? undefined;
|
||||
const member = room.getMember(rtcMember.userId) ?? undefined;
|
||||
return { id, member };
|
||||
}
|
||||
|
||||
@@ -435,16 +435,16 @@ describe("Start connection states", () => {
|
||||
});
|
||||
|
||||
function fakeRemoteLivekitParticipant(id: string): RemoteParticipant {
|
||||
return vi.mocked<RemoteParticipant>({
|
||||
return {
|
||||
identity: id,
|
||||
} as unknown as RemoteParticipant);
|
||||
} as unknown as RemoteParticipant;
|
||||
}
|
||||
|
||||
function fakeRtcMemberShip(userId: string, deviceId: string): CallMembership {
|
||||
return vi.mocked<CallMembership>({
|
||||
sender: userId,
|
||||
deviceId: deviceId,
|
||||
} as unknown as CallMembership);
|
||||
return {
|
||||
userId,
|
||||
deviceId,
|
||||
} as unknown as CallMembership;
|
||||
}
|
||||
|
||||
describe("Publishing participants observations", () => {
|
||||
@@ -570,7 +570,7 @@ describe("Publishing participants observations", () => {
|
||||
// he is using that focus to publish, so he should still appear as a publisher
|
||||
expect(updatedPublishers?.length).toEqual(2);
|
||||
const pp = updatedPublishers?.find(
|
||||
(p) => p.membership.sender == "@bob:example.org",
|
||||
(p) => p.membership.userId == "@bob:example.org",
|
||||
);
|
||||
expect(pp).toBeDefined();
|
||||
expect(pp!.participant).not.toBeDefined();
|
||||
@@ -581,7 +581,7 @@ describe("Publishing participants observations", () => {
|
||||
).toBeTruthy();
|
||||
// Now if bob is not in the rtc memberships, he should disappear
|
||||
const noBob = rtcMemberships.filter(
|
||||
({ membership }) => membership.sender !== "@bob:example.org",
|
||||
({ membership }) => membership.userId !== "@bob:example.org",
|
||||
);
|
||||
fakeMembershipsFocusMap$.next(noBob);
|
||||
expect(observedPublishers.pop()?.length).toEqual(1);
|
||||
|
||||
@@ -242,7 +242,7 @@ export class Connection {
|
||||
)
|
||||
// Pair with their associated LiveKit participant (if any)
|
||||
.map((membership) => {
|
||||
const id = `${membership.sender}:${membership.deviceId}`;
|
||||
const id = `${membership.userId}:${membership.deviceId}`;
|
||||
const participant = participants.find((p) => p.identity === id);
|
||||
return { participant, membership };
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user