diff --git a/app/routes/_room.$roomName._index.tsx b/app/routes/_room.$roomName._index.tsx
index fed8337f..9b626dfb 100644
--- a/app/routes/_room.$roomName._index.tsx
+++ b/app/routes/_room.$roomName._index.tsx
@@ -1,7 +1,12 @@
import { VisuallyHidden } from '@radix-ui/react-visually-hidden'
import type { LoaderFunctionArgs } from '@remix-run/cloudflare'
import { json } from '@remix-run/cloudflare'
-import { useNavigate, useParams, useSearchParams } from '@remix-run/react'
+import {
+ useLoaderData,
+ useNavigate,
+ useParams,
+ useSearchParams,
+} from '@remix-run/react'
import { useObservableAsValue } from 'partytracks/react'
import invariant from 'tiny-invariant'
import { AudioIndicator } from '~/components/AudioIndicator'
@@ -21,9 +26,11 @@ import { useRoomUrl } from '~/hooks/useRoomUrl'
import getUsername from '~/utils/getUsername.server'
export const loader = async ({ request, context }: LoaderFunctionArgs) => {
+ const env = context.env
const username = await getUsername(request)
invariant(username)
- return json({ username, callsAppId: context.env.CALLS_APP_ID })
+ const maxParticipants = env.MAX_PARTICIPANTS ?? null
+ return json({ username, callsAppId: env.CALLS_APP_ID, maxParticipants })
}
let refreshCheckDone = false
@@ -53,11 +60,15 @@ export default function Lobby() {
const session = useObservableAsValue(partyTracks.session$)
const sessionError = useObservableAsValue(partyTracks.sessionError$)
trackRefreshes()
+ const { maxParticipants } = useLoaderData
+ This room has reached its maximum capacity of {maxParticipants}{' '} + participants. +
+ )}