import "@szhsin/react-menu/dist/index.css"; import "./index.css"; import React from "react"; import ReactDOM from "react-dom/client"; import { NostrSystem } from "@snort/system"; import { RouterProvider, createBrowserRouter } from "react-router-dom"; import { RootPage } from "pages/root"; import { TagPage } from "pages/tag"; import { LayoutPage } from "pages/layout"; import { ProfilePage } from "pages/profile-page"; import { StreamPage } from "pages/stream-page"; import { ChatPopout } from "pages/chat-popout"; import { LoginStore } from "login"; import { StreamProvidersPage } from "pages/providers"; import { defaultRelays } from "const"; import { CatchAllRoutePage } from "pages/catch-all"; export enum StreamState { Live = "live", Ended = "ended", Planned = "planned", } export const System = new NostrSystem({}); export const Login = new LoginStore(); Object.entries(defaultRelays).forEach((params) => { const [relay, settings] = params; System.ConnectToRelay(relay, settings); }); const router = createBrowserRouter([ { element: , loader: async () => { await System.Init(); return null; }, children: [ { path: "/", element: , }, { path: "/t/:tag", element: , }, { path: "/p/:npub", element: , }, { path: "/:id", element: , }, { path: "/providers/:id?", element: , }, { path: "*", element: } ], }, { path: "/chat/:id", element: , }, ]); const root = ReactDOM.createRoot( document.getElementById("root") as HTMLDivElement ); root.render( );