Files
ppc_amnet/amnet-web/src/main.tsx
T
2025-12-30 12:20:36 +00:00

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>,
)