Merge branch 'livekit' into new_url_scema

This commit is contained in:
Timo
2023-09-20 15:40:22 +02:00
committed by GitHub
6 changed files with 57 additions and 10 deletions

View File

@@ -121,5 +121,6 @@
"Yes, join call": "Yes, join call", "Yes, join call": "Yes, join call",
"You": "You", "You": "You",
"You were disconnected from the call": "You were disconnected from the call", "You were disconnected from the call": "You were disconnected from the call",
"Your feedback": "Your feedback" "Your feedback": "Your feedback",
"Your web browser does not support media end-to-end encryption. Supported Browsers are Chrome, Safari, Firefox >=117": "Your web browser does not support media end-to-end encryption. Supported Browsers are Chrome, Safari, Firefox >=117"
} }

View File

@@ -108,5 +108,18 @@
"Sharing screen": "Lécran est partagé", "Sharing screen": "Lécran est partagé",
"{{count, number}}|one": "{{count, number}}", "{{count, number}}|one": "{{count, number}}",
"Not encrypted": "Non chiffré", "Not encrypted": "Non chiffré",
"You": "Vous" "You": "Vous",
"Continue in browser": "Continuer dans le navigateur",
"Mute microphone": "Couper le microphone",
"Name of call": "Nom de lappel",
"Open in the app": "Ouvrir dans lapplication",
"Ready to join?": "Prêt à rejoindre ?",
"Select app": "Choisissez lapplication",
"Start new call": "Démarrer un nouvel appel",
"Back to recents": "Revenir aux récents",
"Start video": "Démarrer la vidéo",
"Stop video": "Arrêter la vidéo",
"Unmute microphone": "Allumer le microphone",
"Call not found": "Appel non trouvé",
"Calls are now end-to-end encrypted and need to be created from the home page. This helps make sure everyone's using the same encryption key.": "Les appels sont maintenant chiffrés de bout-en-bout et doivent être créés depuis la page daccueil. Cela permet dêtre sûr que tout le monde utilise la même clé de chiffrement."
} }

View File

@@ -119,5 +119,7 @@
"Start video": "開始影片", "Start video": "開始影片",
"Back to recents": "回到最近的通話", "Back to recents": "回到最近的通話",
"Stop video": "停止影片", "Stop video": "停止影片",
"Unmute microphone": "將麥克風取消靜音" "Unmute microphone": "將麥克風取消靜音",
"Call not found": "找不到通話",
"Calls are now end-to-end encrypted and need to be created from the home page. This helps make sure everyone's using the same encryption key.": "通話現在是端對端加密的,必須從首頁建立。這有助於確保每個人都使用相同的加密金鑰。"
} }

View File

@@ -62,8 +62,11 @@ export const AppSelectionModal: FC<Props> = ({ roomId }) => {
return params; return params;
}); });
const result = new URL("io.element.call:/call"); const result = new URL("io.element.call:/call");
result.searchParams.set("url", url.toString()); // Everything after the last & stripped away making us loose the last param. Most likely while removing the pwd.
// TODO fix the pwd removal function (or wherever this happens) to not delete everything after the last &.
result.searchParams.set("url", url.toString() + "&");
return result.toString(); return result.toString();
}, [roomId, roomSharedKey]); }, [roomId, roomSharedKey]);

View File

@@ -17,14 +17,16 @@ limitations under the License.
import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { MatrixClient } from "matrix-js-sdk/src/client"; import { MatrixClient } from "matrix-js-sdk/src/client";
import { Room } from "livekit-client"; import { Room, isE2EESupported } from "livekit-client";
import { logger } from "matrix-js-sdk/src/logger"; import { logger } from "matrix-js-sdk/src/logger";
import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession"; import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession";
import { JoinRule, RoomMember } from "matrix-js-sdk/src/matrix"; import { JoinRule, RoomMember } from "matrix-js-sdk/src/matrix";
import { Heading, Link, Text } from "@vector-im/compound-web";
import { useTranslation } from "react-i18next";
import type { IWidgetApiRequest } from "matrix-widget-api"; import type { IWidgetApiRequest } from "matrix-widget-api";
import { widget, ElementWidgetActions, JoinCallData } from "../widget"; import { widget, ElementWidgetActions, JoinCallData } from "../widget";
import { ErrorView } from "../FullScreenView"; import { ErrorView, FullScreenView } from "../FullScreenView";
import { LobbyView } from "./LobbyView"; import { LobbyView } from "./LobbyView";
import { MatrixInfo } from "./VideoPreview"; import { MatrixInfo } from "./VideoPreview";
import { CallEndedView } from "./CallEndedView"; import { CallEndedView } from "./CallEndedView";
@@ -284,6 +286,16 @@ export function GroupCallView({
); );
const onShareClick = joinRule === JoinRule.Public ? onShareClickFn : null; const onShareClick = joinRule === JoinRule.Public ? onShareClickFn : null;
const onHomeClick = useCallback(
(ev: React.MouseEvent) => {
ev.preventDefault();
history.push("/");
},
[history]
);
const { t } = useTranslation();
if (e2eeEnabled && isRoomE2EE && !e2eeSharedKey) { if (e2eeEnabled && isRoomE2EE && !e2eeSharedKey) {
return ( return (
<ErrorView <ErrorView
@@ -294,9 +306,21 @@ export function GroupCallView({
} }
/> />
); );
} } else if (!isE2EESupported() && isRoomE2EE) {
return (
if (!e2eeEnabled && isRoomE2EE) { <FullScreenView>
<Heading>Incompatible Browser</Heading>
<Text>
{t(
"Your web browser does not support media end-to-end encryption. Supported Browsers are Chrome, Safari, Firefox >=117"
)}
</Text>
<Link href="/" onClick={onHomeClick}>
{t("Home")}
</Link>
</FullScreenView>
);
} else if (!e2eeEnabled && isRoomE2EE) {
return <ErrorView error={new Error("You need to enable E2EE to join.")} />; return <ErrorView error={new Error("You need to enable E2EE to join.")} />;
} }

View File

@@ -24,8 +24,12 @@ limitations under the License.
.toggle input { .toggle input {
appearance: none; appearance: none;
/* Safari puts a margin on these, which is not removed via appearance: none */ /*
* Safari puts a margin on these, which is not removed via appearance: none
* mobile safari also has them take up space in the DOM, so set width 0
*/
margin: 0; margin: 0;
width: 0;
outline: none !important; outline: none !important;
} }