From d6d374286446bb6dafbf722eaadbcb898ac6d3d1 Mon Sep 17 00:00:00 2001
From: Robert Long <robert@robertlong.me>
Date: Mon, 9 Aug 2021 17:00:17 -0700
Subject: [PATCH] Reset debugger state after leaving the room.

---
 src/ConferenceCallDebugger.js | 10 ++++++++++
 src/ConferenceCallManager.js  |  1 +
 2 files changed, 11 insertions(+)

diff --git a/src/ConferenceCallDebugger.js b/src/ConferenceCallDebugger.js
index 10908af..bee635b 100644
--- a/src/ConferenceCallDebugger.js
+++ b/src/ConferenceCallDebugger.js
@@ -33,6 +33,7 @@ export class ConferenceCallDebugger extends EventEmitter {
     this.manager.on("debugstate", this._onDebugStateChanged);
     this.manager.client.on("event", this._onEvent);
     this.manager.on("entered", this._onEntered);
+    this.manager.on("left", this._onLeft);
   }
 
   _onEntered = () => {
@@ -44,6 +45,15 @@ export class ConferenceCallDebugger extends EventEmitter {
     }
   };
 
+  _onLeft = () => {
+    this.bufferedEvents = [];
+    this.debugState = {
+      users: new Map(),
+      calls: new Map(),
+    };
+    this.emit("debug");
+  };
+
   _onEvent = (event) => {
     if (!this.manager.entered) {
       this.bufferedEvents.push(event);
diff --git a/src/ConferenceCallManager.js b/src/ConferenceCallManager.js
index 0b0ab56..3068eb9 100644
--- a/src/ConferenceCallManager.js
+++ b/src/ConferenceCallManager.js
@@ -288,6 +288,7 @@ export class ConferenceCallManager extends EventEmitter {
     clearTimeout(this._memberParticipantStateTimeout);
 
     this.emit("participants_changed");
+    this.emit("left");
   }
 
   logout() {