"use client"; import { useCallback, useEffect, useState } from "react"; import { Box, Spinner } from "@chakra-ui/react"; import useRoomMeeting from "./useRoomMeeting"; import { useRouter } from "next/navigation"; import { notFound } from "next/navigation"; import useSessionStatus from "../lib/useSessionStatus"; import VideoPlatformEmbed from "../lib/videoPlatforms/VideoPlatformEmbed"; export type RoomDetails = { params: { roomName: string; }; }; export default function Room(details: RoomDetails) { const [platformReady, setPlatformReady] = useState(false); const roomName = details.params.roomName; const meeting = useRoomMeeting(roomName); const router = useRouter(); const { isLoading, isAuthenticated } = useSessionStatus(); const handleLeave = useCallback(() => { router.push("/browse"); }, [router]); const handlePlatformReady = useCallback(() => { setPlatformReady(true); }, []); useEffect(() => { if ( !isLoading && meeting?.error && "status" in meeting.error && meeting.error.status === 404 ) { notFound(); } }, [isLoading, meeting?.error]); if (isLoading) { return ( ); } if (!meeting?.response || !isAuthenticated) { return null; } return ( ); }