diff --git a/src/app/guest/page.tsx b/src/app/guest/page.tsx new file mode 100644 index 0000000..6808b78 --- /dev/null +++ b/src/app/guest/page.tsx @@ -0,0 +1,62 @@ +'use client'; + +import '@livekit/components-styles'; +import { + LiveKitRoom, + VideoConference, + RoomAudioRenderer, +} from '@livekit/components-react'; +import { useEffect, useState, Suspense } from 'react'; +import { useSearchParams } from 'next/navigation'; + +function GuestRoom() { + const searchParams = useSearchParams(); + const room = searchParams.get('room'); + const [token, setToken] = useState(''); + + useEffect(() => { + if (!room) return; + + (async () => { + try { + const resp = await fetch(`/api/livekit/token?room=${room}&identity=guest-${Math.floor(Math.random() * 1000)}`); + const data = await resp.json(); + setToken(data.token); + } catch (e) { + console.error(e); + } + })(); + }, [room]); + + if (!room) { + return