File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11"use client" ;
22
33import { CreateRoom } from "@/components/createRoom" ;
4+ import { ErrorBanner } from "@/components/ErrorBanner" ;
45import { useRouter } from "next/navigation" ;
6+ import { Suspense } from "react" ;
57
68export default function Home ( ) {
79 const router = useRouter ( ) ;
810 return (
9- < main className = "flex h-screen w-screen flex-col items-center justify-center gap-8 p-4" >
10- < header >
11- < h1 className = "text-2xl font-bold tracking-tight text-green-500" >
12- { ">" } private_chat
13- </ h1 >
14- < p className = "text-sm text-zinc-500" >
15- A private, self-destructing chat room.
16- </ p >
17- </ header >
18- < CreateRoom router = { router } />
19- </ main >
11+ < Suspense >
12+ < main className = "flex h-screen w-screen flex-col items-center justify-center gap-8 p-4" >
13+ < ErrorBanner />
14+ < header >
15+ < h1 className = "text-2xl font-bold tracking-tight text-green-500" >
16+ { ">" } private_chat
17+ </ h1 >
18+ < p className = "text-sm text-zinc-500" >
19+ A private, self-destructing chat room.
20+ </ p >
21+ </ header >
22+ < CreateRoom router = { router } />
23+ </ main >
24+ </ Suspense >
2025 ) ;
2126}
Original file line number Diff line number Diff line change 1+ import { useSearchParams } from "next/navigation" ;
2+
3+ export const ErrorBanner = ( ) => {
4+ const searchParams = useSearchParams ( ) ;
5+ const wasDestroyed = searchParams . get ( "destroyed" ) === "true" ;
6+ const error = searchParams . get ( "error" ) ;
7+ const roomNotFound = error === "room-not-found" ;
8+ const roomFull = error === "room-full" ;
9+
10+ return (
11+ < >
12+ { wasDestroyed && (
13+ < div className = "border border-red-900 bg-red-950/50 p-4 text-center" >
14+ < p className = "text-sm font-bold text-red-500" > ROOM DESTROYED</ p >
15+ < p className = "mt-1 text-xs text-zinc-500" >
16+ All messages were permanently deleted.
17+ </ p >
18+ </ div >
19+ ) }
20+ { roomNotFound && (
21+ < div className = "border border-red-900 bg-red-950/50 p-4 text-center" >
22+ < p className = "text-sm font-bold text-red-500" > ROOM NOT FOUND</ p >
23+ < p className = "mt-1 text-xs text-zinc-500" >
24+ This room may have expired or never existed.
25+ </ p >
26+ </ div >
27+ ) }
28+ { roomFull && (
29+ < div className = "border border-red-900 bg-red-950/50 p-4 text-center" >
30+ < p className = "text-sm font-bold text-red-500" > ROOM FULL</ p >
31+ < p className = "mt-1 text-xs text-zinc-500" >
32+ This room is at maximum capacity.
33+ </ p >
34+ </ div >
35+ ) }
36+ </ >
37+ ) ;
38+ } ;
You can’t perform that action at this time.
0 commit comments