diff --git a/src/e2ee/sharedKeyManagement.ts b/src/e2ee/sharedKeyManagement.ts
index b83212c1..06183878 100644
--- a/src/e2ee/sharedKeyManagement.ts
+++ b/src/e2ee/sharedKeyManagement.ts
@@ -19,7 +19,7 @@ import { useEffect, useMemo } from "react";
import { useEnableE2EE } from "../settings/useSetting";
import { useLocalStorage } from "../useLocalStorage";
import { useClient } from "../ClientContext";
-import { PASSWORD_STRING, useUrlParams } from "../UrlParams";
+import { useUrlParams } from "../UrlParams";
import { widget } from "../widget";
export const getRoomSharedKeyLocalStorageKey = (roomId: string): string =>
@@ -60,29 +60,6 @@ export const useRoomSharedKey = (roomId: string): string | null => {
return useInternalRoomSharedKey(roomId)[0] ?? passwordFormUrl;
};
-export const useManageRoomSharedKey = (roomId: string): string | null => {
- const urlParams = useUrlParams();
-
- const urlPassword = useKeyFromUrl(roomId);
-
- const [e2eeSharedKey] = useInternalRoomSharedKey(roomId);
-
- useEffect(() => {
- const hash = location.hash;
-
- if (!hash.includes("?")) return;
- if (!hash.includes(PASSWORD_STRING)) return;
- if (urlParams.password !== e2eeSharedKey) return;
-
- const [hashStart, passwordStart] = hash.split(PASSWORD_STRING);
- const hashEnd = passwordStart.split("&").slice(1).join("&");
-
- location.replace((hashStart ?? "") + (hashEnd ?? ""));
- }, [urlParams, e2eeSharedKey]);
-
- return e2eeSharedKey ?? urlPassword;
-};
-
export const useIsRoomE2EE = (roomId: string): boolean | null => {
const { client } = useClient();
const room = useMemo(() => client?.getRoom(roomId) ?? null, [roomId, client]);
diff --git a/src/home/CallList.tsx b/src/home/CallList.tsx
index ac501e41..8bd3778d 100644
--- a/src/home/CallList.tsx
+++ b/src/home/CallList.tsx
@@ -68,9 +68,11 @@ function CallTile({ name, avatarUrl, room }: CallTileProps) {
return (
diff --git a/src/home/RegisteredView.tsx b/src/home/RegisteredView.tsx
index 4bba6e43..779072bb 100644
--- a/src/home/RegisteredView.tsx
+++ b/src/home/RegisteredView.tsx
@@ -81,14 +81,16 @@ export function RegisteredView({ client }: Props) {
await createRoom(client, roomName, e2eeEnabled ?? false)
)[1];
+ const roomPassword = randomString(32);
+
if (e2eeEnabled) {
setLocalStorageItem(
getRoomSharedKeyLocalStorageKey(roomId),
- randomString(32)
+ roomPassword
);
}
- history.push(getRelativeRoomUrl(roomId, roomName));
+ history.push(getRelativeRoomUrl(roomId, roomName, roomPassword));
}
submit().catch((error) => {
diff --git a/src/home/UnauthenticatedView.tsx b/src/home/UnauthenticatedView.tsx
index ad44536b..376e4944 100644
--- a/src/home/UnauthenticatedView.tsx
+++ b/src/home/UnauthenticatedView.tsx
@@ -88,6 +88,7 @@ export const UnauthenticatedView: FC = () => {
);
let roomId: string;
+ const roomPassword = randomString(32);
try {
roomId = (
await createRoom(client, roomName, e2eeEnabled ?? false)
@@ -96,7 +97,7 @@ export const UnauthenticatedView: FC = () => {
if (e2eeEnabled) {
setLocalStorageItem(
getRoomSharedKeyLocalStorageKey(roomId),
- randomString(32)
+ roomPassword
);
}
} catch (error) {
@@ -127,7 +128,7 @@ export const UnauthenticatedView: FC = () => {
}
setClient({ client, session });
- history.push(getRelativeRoomUrl(roomId, roomName));
+ history.push(getRelativeRoomUrl(roomId, roomName, roomPassword));
}
submit().catch((error) => {
diff --git a/src/room/GroupCallView.tsx b/src/room/GroupCallView.tsx
index bbd9652e..d238176e 100644
--- a/src/room/GroupCallView.tsx
+++ b/src/room/GroupCallView.tsx
@@ -39,10 +39,7 @@ import { useMediaDevices, MediaDevices } from "../livekit/MediaDevicesContext";
import { useMatrixRTCSessionMemberships } from "../useMatrixRTCSessionMemberships";
import { enterRTCSession, leaveRTCSession } from "../rtcSessionHelpers";
import { useMatrixRTCSessionJoinState } from "../useMatrixRTCSessionJoinState";
-import {
- useManageRoomSharedKey,
- useIsRoomE2EE,
-} from "../e2ee/sharedKeyManagement";
+import { useIsRoomE2EE, useRoomSharedKey } from "../e2ee/sharedKeyManagement";
import { useEnableE2EE } from "../settings/useSetting";
import { useRoomAvatar } from "./useRoomAvatar";
import { useRoomName } from "./useRoomName";
@@ -75,7 +72,7 @@ export function GroupCallView({
const memberships = useMatrixRTCSessionMemberships(rtcSession);
const isJoined = useMatrixRTCSessionJoinState(rtcSession);
- const e2eeSharedKey = useManageRoomSharedKey(rtcSession.room.roomId);
+ const e2eeSharedKey = useRoomSharedKey(rtcSession.room.roomId);
const isRoomE2EE = useIsRoomE2EE(rtcSession.room.roomId);
useEffect(() => {