diff --git a/www/app/[roomName]/page.tsx b/www/app/[roomName]/page.tsx index c2b18f50..9d81f4ef 100644 --- a/www/app/[roomName]/page.tsx +++ b/www/app/[roomName]/page.tsx @@ -1,7 +1,8 @@ "use client"; import "@whereby.com/browser-sdk/embed"; -import { useCallback, useEffect, useRef } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; +import { Box, Button, Text, VStack, HStack } from "@chakra-ui/react"; import useRoomMeeting from "./useRoomMeeting"; import { useRouter } from "next/navigation"; import { useSession } from "next-auth/react"; @@ -21,13 +22,19 @@ export default function Room(details: RoomDetails) { const sessionReady = status !== "loading"; const isAuthenticated = status === "authenticated"; + const [consentGiven, setConsentGiven] = useState(null); + const roomUrl = meeting?.response?.host_room_url ? meeting?.response?.host_room_url : meeting?.response?.room_url; - const handleLeave = useCallback((e) => { + const handleLeave = useCallback(() => { router.push("/browse"); - }, []); + }, [router]); + + const handleConsent = (consent: boolean) => { + setConsentGiven(consent); + }; useEffect(() => { if (!sessionReady || !isAuthenticated || !roomUrl) return; @@ -37,7 +44,53 @@ export default function Room(details: RoomDetails) { return () => { wherebyRef.current?.removeEventListener("leave", handleLeave); }; - }, [handleLeave, roomUrl]); + }, [handleLeave, roomUrl, sessionReady, isAuthenticated]); + + if (!isAuthenticated && !consentGiven) { + return ( + + + {consentGiven === null ? ( + <> + + This meeting may be recorded. Do you consent to being recorded? + + + + + + + ) : ( + <> + + You cannot join the meeting without consenting to being + recorded. + + + )} + + + ); + } return ( <>