A realtime multiplayer version of the boardgame Ricochet Robots
at master 941 B view raw
1"use client"; 2 3import { useSearchParams } from "next/navigation"; 4import { useEffect, useState } from "react"; 5import { 6 Dialog, 7 DialogContent, 8 DialogHeader, 9 DialogTitle, 10} from "~/components/ui/dialog"; 11import { usePushRoute } from "use-push-router"; 12 13export const Error = ({ error }: { error?: string }) => { 14 const [open, setOpen] = useState<boolean>(false); 15 const searchParams = useSearchParams(); 16 const { pushSearchParams } = usePushRoute(); 17 18 useEffect(() => { 19 setOpen(!!searchParams.get("error")); 20 }, []); 21 22 return ( 23 <Dialog 24 open={!!open} 25 onOpenChange={(open) => { 26 setOpen(open); 27 pushSearchParams({ 28 remove: { 29 error: undefined, 30 }, 31 }); 32 }} 33 > 34 <DialogContent> 35 <DialogHeader> 36 <DialogTitle>Error</DialogTitle> 37 </DialogHeader> 38 {searchParams.get("error")} 39 </DialogContent> 40 </Dialog> 41 ); 42};