diff --git a/src/ConferenceCallManager.js b/src/ConferenceCallManager.js index 3c734690..6da87ed8 100644 --- a/src/ConferenceCallManager.js +++ b/src/ConferenceCallManager.js @@ -94,6 +94,10 @@ export class ConferenceCallManager extends EventEmitter { } } + static logout() { + localStorage.removeItem("matrix-auth-store"); + } + static async register(homeserverUrl, username, password) { try { const registrationClient = matrixcs.createClient(homeserverUrl); diff --git a/src/ConferenceCallManagerHooks.js b/src/ConferenceCallManagerHooks.js index 31121f9f..d4dd31b9 100644 --- a/src/ConferenceCallManagerHooks.js +++ b/src/ConferenceCallManagerHooks.js @@ -124,6 +124,7 @@ export function useVideoRoom(manager, roomId, timeout = 5000) { return () => { window.removeEventListener("beforeunload", onBeforeUnload); + manager.leaveCall(); }; }, [manager]); diff --git a/src/JoinOrCreateRoom.jsx b/src/JoinOrCreateRoom.jsx index 2b0eff18..4891af73 100644 --- a/src/JoinOrCreateRoom.jsx +++ b/src/JoinOrCreateRoom.jsx @@ -60,6 +60,15 @@ export function JoinOrCreateRoom({ manager }) { [manager] ); + const onLogout = useCallback( + (e) => { + e.preventDefault(); + manager.logout(); + history.push("/"); + }, + [manager] + ); + return (