an appview-less Bluesky client using Constellation and PDS Queries
reddwarf.app
frontend
spa
bluesky
reddwarf
microcosm
1import {
2 ErrorComponent,
3 Link,
4 rootRouteId,
5 useMatch,
6 useRouter,
7} from "@tanstack/react-router";
8import type { ErrorComponentProps } from "@tanstack/react-router";
9
10export function DefaultCatchBoundary({ error }: ErrorComponentProps) {
11 const router = useRouter();
12 const isRoot = useMatch({
13 strict: false,
14 select: (state) => state.id === rootRouteId,
15 });
16
17 console.error("DefaultCatchBoundary Error:", error);
18
19 return (
20 <div className="min-w-0 flex-1 p-4 flex flex-col items-center justify-center gap-6">
21 <ErrorComponent error={error} />
22 <div className="flex gap-2 items-center flex-wrap">
23 <button
24 onClick={() => {
25 router.invalidate();
26 }}
27 className={`px-2 py-1 bg-gray-600 dark:bg-gray-700 rounded text-white uppercase font-extrabold`}
28 >
29 Try Again
30 </button>
31 {isRoot ? (
32 <Link
33 to="/"
34 className={`px-2 py-1 bg-gray-600 dark:bg-gray-700 rounded text-white uppercase font-extrabold`}
35 >
36 Home
37 </Link>
38 ) : (
39 <Link
40 to="/"
41 className={`px-2 py-1 bg-gray-600 dark:bg-gray-700 rounded text-white uppercase font-extrabold`}
42 onClick={(e) => {
43 e.preventDefault();
44 window.history.back();
45 }}
46 >
47 Go Back
48 </Link>
49 )}
50 </div>
51 </div>
52 );
53}