"use client"; import { useCallback, useEffect, useRef } from "react"; import "@whereby.com/browser-sdk/embed"; import { Box, Button, HStack, useToast, Text } from "@chakra-ui/react"; interface WherebyEmbedProps { roomUrl: string; onLeave?: () => void; } export default function WherebyEmbed({ roomUrl, onLeave }: WherebyEmbedProps) { const wherebyRef = useRef(null); const toast = useToast(); useEffect(() => { if (roomUrl && !localStorage.getItem("recording-notice-dismissed")) { const toastId = toast({ position: "top", duration: null, render: ({ onClose }) => ( This webinar is being recorded. By continuing, you agree to our{" "} ), }); return () => { toast.close(toastId); }; } }, [roomUrl, toast]); const handleLeave = () => { if (onLeave) { onLeave(); } }; useEffect(() => { wherebyRef.current?.addEventListener("leave", handleLeave); return () => { wherebyRef.current?.removeEventListener("leave", handleLeave); }; }, [handleLeave]); return ( ); }