mirror of
https://gitea.tendokyu.moe/ppc/amnet.git
synced 2026-09-30 18:57:54 +03:00
63 lines
1.6 KiB
TypeScript
63 lines
1.6 KiB
TypeScript
import './index.css'
|
|
|
|
// import polyfills from core-js for older browsers
|
|
import 'core-js/actual/promise';
|
|
import 'core-js/actual/symbol';
|
|
import 'core-js/actual/object/assign';
|
|
|
|
import {StrictMode} from "react";
|
|
import {createRoot} from "react-dom/client";
|
|
import {createHashRouter, Navigate, RouterProvider} from "react-router-dom";
|
|
|
|
import {Toaster} from "@/components/ui/toaster.tsx";
|
|
import {ThemeProvider} from "@/components/theme-provider.tsx";
|
|
|
|
import CardManager from "@/pages/card-manager.tsx";
|
|
import ServerCardIn from "@/pages/card-in-screen.tsx";
|
|
import ServerListing from "@/pages/server-listing.tsx";
|
|
import Privacy from "@/pages/privacy.tsx";
|
|
|
|
// iOS PWAs show the navigation bar when changing routes
|
|
// HashRouter doesn't have this issue as the URL never changes
|
|
const router = createHashRouter([
|
|
{
|
|
path: '/',
|
|
element: <Navigate replace to="/servers"/>
|
|
},
|
|
{
|
|
path: '/servers/:serverId',
|
|
element: <ServerCardIn/>
|
|
},
|
|
...['/servers', '/servers/add'].map(x => {
|
|
return {
|
|
path: x,
|
|
element: <ServerListing/>
|
|
};
|
|
}),
|
|
...['/cards', '/cards/add'].map(x => {
|
|
return {
|
|
path: x,
|
|
element: <CardManager/>
|
|
};
|
|
}),
|
|
{
|
|
path: "/privacy",
|
|
element: <Privacy/>
|
|
}
|
|
])
|
|
|
|
function App() {
|
|
return (
|
|
<ThemeProvider defaultTheme="system" storageKey="vite-ui-theme">
|
|
<RouterProvider router={router}/>
|
|
<Toaster/>
|
|
</ThemeProvider>
|
|
)
|
|
}
|
|
|
|
createRoot(document.getElementById('root')!).render(
|
|
<StrictMode>
|
|
<App/>
|
|
</StrictMode>,
|
|
)
|