mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-12 12:20:23 +01:00
* wip * wip page * chore: style * wip pages * wip pages * chore: toggle * chore: link * feat: topic search * chore: page section * refactor: apply tailwind class ordering * fix: handle loggedIn user for guest route * feat: folder & image schema * chore: move utils to shared * refactor: tailwind class ordering * feat: img ext for editor * refactor: remove qa * fix: tanstack start * fix: wrong import * chore: use toast * chore: schema
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import {
|
|
ErrorComponent,
|
|
Link,
|
|
rootRouteId,
|
|
useMatch,
|
|
useRouter,
|
|
} from "@tanstack/react-router"
|
|
import type { ErrorComponentProps } from "@tanstack/react-router"
|
|
|
|
export function DefaultCatchBoundary({ error }: ErrorComponentProps) {
|
|
const router = useRouter()
|
|
const isRoot = useMatch({
|
|
strict: false,
|
|
select: (state) => state.id === rootRouteId,
|
|
})
|
|
|
|
console.error(error)
|
|
|
|
return (
|
|
<div className="flex min-w-0 flex-1 flex-col items-center justify-center gap-6 p-4">
|
|
<ErrorComponent error={error} />
|
|
<div className="flex flex-wrap items-center gap-2">
|
|
<button
|
|
onClick={() => {
|
|
router.invalidate()
|
|
}}
|
|
className={`rounded bg-gray-600 px-2 py-1 font-extrabold uppercase text-white dark:bg-gray-700`}
|
|
>
|
|
Try Again
|
|
</button>
|
|
{isRoot ? (
|
|
<Link
|
|
to="/"
|
|
className={`rounded bg-gray-600 px-2 py-1 font-extrabold uppercase text-white dark:bg-gray-700`}
|
|
>
|
|
Home
|
|
</Link>
|
|
) : (
|
|
<Link
|
|
to="/"
|
|
className={`rounded bg-gray-600 px-2 py-1 font-extrabold uppercase text-white dark:bg-gray-700`}
|
|
onClick={(e) => {
|
|
e.preventDefault()
|
|
window.history.back()
|
|
}}
|
|
>
|
|
Go Back
|
|
</Link>
|
|
)}
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|