snort/src/index.tsx

111 lines
2.6 KiB
TypeScript
Raw Normal View History

2022-12-18 14:51:47 +00:00
import './index.css';
2023-01-20 22:59:26 +00:00
import '@szhsin/react-menu/dist/index.css';
2022-12-18 14:51:47 +00:00
2023-01-18 23:39:50 +00:00
import { StrictMode } from 'react';
2023-01-15 10:41:34 +00:00
import { QueryClient, QueryClientProvider } from 'react-query';
2023-01-18 23:39:50 +00:00
import * as ReactDOM from 'react-dom/client';
2022-12-18 14:51:47 +00:00
import { Provider } from 'react-redux'
import {
2023-01-12 12:00:44 +00:00
createBrowserRouter,
RouterProvider,
2022-12-18 14:51:47 +00:00
} from "react-router-dom";
2023-01-19 11:03:51 +00:00
// @ts-expect-error
2023-01-20 11:11:50 +00:00
import * as serviceWorkerRegistration from 'serviceWorkerRegistration';
import Store from "State/Store";
import EventPage from 'Pages/EventPage';
import Layout from 'Pages/Layout';
import LoginPage from 'Pages/Login';
import ProfilePage from 'Pages/ProfilePage';
import RootPage from 'Pages/Root';
import NotificationsPage from 'Pages/Notifications';
import NewUserPage from 'Pages/NewUserPage';
2023-01-20 17:07:14 +00:00
import SettingsPage, { SettingsRoutes } from 'Pages/SettingsPage';
2023-01-20 11:11:50 +00:00
import ErrorPage from 'Pages/ErrorPage';
import VerificationPage from 'Pages/Verification';
import MessagesPage from 'Pages/MessagesPage';
import ChatPage from 'Pages/ChatPage';
import DonatePage from 'Pages/DonatePage';
import HashTagsPage from 'Pages/HashTagsPage';
2023-01-24 12:33:18 +00:00
import SearchPage from 'Pages/SearchPage';
2022-12-18 14:51:47 +00:00
2023-01-15 10:41:34 +00:00
/**
* HTTP query provider
*/
const HTTP = new QueryClient()
2023-01-19 11:03:51 +00:00
serviceWorkerRegistration.register();
2023-01-28 15:40:19 +00:00
export const router = createBrowserRouter([
2023-01-12 12:00:44 +00:00
{
element: <Layout />,
errorElement: <ErrorPage />,
children: [
{
path: "/",
element: <RootPage />
},
{
path: "/login",
element: <LoginPage />
},
{
path: "/e/:id",
element: <EventPage />
},
{
path: "/p/:id",
element: <ProfilePage />
},
{
path: "/notifications",
element: <NotificationsPage />
},
{
path: "/new",
element: <NewUserPage />
},
{
path: "/settings",
2023-01-20 17:07:14 +00:00
element: <SettingsPage />,
children: SettingsRoutes
2023-01-12 15:35:42 +00:00
},
{
path: "/verification",
element: <VerificationPage />
2023-01-12 09:48:39 +00:00
},
{
path: "/messages",
element: <MessagesPage />
},
{
path: "/messages/:id",
element: <ChatPage />
2023-01-19 00:03:24 +00:00
},
{
path: "/donate",
element: <DonatePage />
},
{
path: "/t/:tag",
element: <HashTagsPage />
2023-01-24 12:33:18 +00:00
},
{
2023-01-28 15:40:19 +00:00
path: "/search/:keyword?",
2023-01-24 12:33:18 +00:00
element: <SearchPage />
2023-01-12 12:00:44 +00:00
}
]
}
]);
2023-01-18 23:39:50 +00:00
const root = ReactDOM.createRoot(document.getElementById('root')!);
2022-12-18 14:51:47 +00:00
root.render(
2023-01-18 23:39:50 +00:00
<StrictMode>
2022-12-30 23:35:02 +00:00
<Provider store={Store}>
2023-01-15 10:41:34 +00:00
<QueryClientProvider client={HTTP}>
2023-01-18 23:39:50 +00:00
<RouterProvider router={router} />
2023-01-15 10:41:34 +00:00
</QueryClientProvider>
2022-12-30 23:35:02 +00:00
</Provider>
2023-01-18 23:39:50 +00:00
</StrictMode>
2022-12-18 14:51:47 +00:00
);