mirror of https://github.com/vector-im/riot-web
Fix a crash when a call ends while you're in it (#10681)
parent
83f12fcba0
commit
7c4d0ceddc
|
@ -773,6 +773,7 @@ export class ElementCall extends Call {
|
||||||
}
|
}
|
||||||
|
|
||||||
public destroy(): void {
|
public destroy(): void {
|
||||||
|
ActiveWidgetStore.instance.destroyPersistentWidget(this.widget.id, this.groupCall.room.roomId);
|
||||||
WidgetStore.instance.removeVirtualWidget(this.widget.id, this.groupCall.room.roomId);
|
WidgetStore.instance.removeVirtualWidget(this.widget.id, this.groupCall.room.roomId);
|
||||||
this.off(CallEvent.Participants, this.onParticipants);
|
this.off(CallEvent.Participants, this.onParticipants);
|
||||||
this.groupCall.off(GroupCallEvent.ParticipantsChanged, this.onGroupCallParticipants);
|
this.groupCall.off(GroupCallEvent.ParticipantsChanged, this.onGroupCallParticipants);
|
||||||
|
|
|
@ -1050,6 +1050,12 @@ describe("ElementCall", () => {
|
||||||
|
|
||||||
call.off(CallEvent.Destroy, onDestroy);
|
call.off(CallEvent.Destroy, onDestroy);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("clears widget persistence when destroyed", async () => {
|
||||||
|
const destroyPersistentWidgetSpy = jest.spyOn(ActiveWidgetStore.instance, "destroyPersistentWidget");
|
||||||
|
call.destroy();
|
||||||
|
expect(destroyPersistentWidgetSpy).toHaveBeenCalled();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("instance in a video room", () => {
|
describe("instance in a video room", () => {
|
||||||
|
|
Loading…
Reference in New Issue