import { createBrowserRouter, RouterProvider } from "react-router";
import { AppShell } from "./components/layouts/AppShell";
import DashboardPage from "./components/pages/DashboardPage";
import SpellbookPage from "./components/pages/SpellbookPage";
import Nip19PreviewRouter from "./components/pages/Nip19PreviewRouter";
import RunCommandPage from "./components/pages/RunCommandPage";
const router = createBrowserRouter([
{
path: "/",
element: (
),
},
{
path: "/run",
element: (
),
},
{
path: "/preview/:actor/:identifier",
element: (
),
},
// NIP-19 identifier preview route - must come before /:actor/:identifier catch-all
{
path: "/:identifier",
element: (
),
// Only match single-segment paths that look like NIP-19 identifiers
loader: ({ params }) => {
const id = params.identifier;
if (
!id ||
!(
id.startsWith("npub1") ||
id.startsWith("note1") ||
id.startsWith("nevent1") ||
id.startsWith("naddr1")
)
) {
throw new Response("Not Found", { status: 404 });
}
return null;
},
},
// Catch-all for two-segment paths (spellbooks, etc.)
{
path: "/:actor/:identifier",
element: (
),
},
]);
export default function Root() {
return ;
}