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};