2026-01-10 03:44:55 +00:00
|
|
|
import React from "react";
|
|
|
|
|
import ReactDOM from "react-dom/client";
|
|
|
|
|
import { createBrowserRouter } from "react-router";
|
|
|
|
|
import { RouterProvider } from "react-router/dom";
|
2026-01-29 21:30:51 +00:00
|
|
|
import {
|
|
|
|
|
createTheme,
|
|
|
|
|
MantineProvider,
|
|
|
|
|
Input,
|
|
|
|
|
Paper,
|
|
|
|
|
Slider,
|
|
|
|
|
} from "@mantine/core";
|
2026-01-29 22:23:20 +00:00
|
|
|
import { Notifications } from "@mantine/notifications";
|
2026-01-10 03:44:55 +00:00
|
|
|
|
|
|
|
|
import "@mantine/core/styles.css";
|
2026-01-30 00:36:06 +00:00
|
|
|
import "@mantine/dates/styles.css";
|
2026-01-29 22:23:20 +00:00
|
|
|
import "@mantine/notifications/styles.css";
|
2026-01-10 03:44:55 +00:00
|
|
|
|
2026-03-04 21:14:18 +00:00
|
|
|
import { Dashboard, subsListLoader } from "./Dashboard";
|
2026-01-29 21:30:51 +00:00
|
|
|
import { SubOrderSets, subOrderSetsLoader } from "./SubOrderSets";
|
2026-03-04 21:14:18 +00:00
|
|
|
import { OrderSet, orderSetLoader, orderSetAction } from "./OrderSet";
|
|
|
|
|
import { UserContextProvider } from "./UserContext";
|
2026-03-05 17:55:33 +00:00
|
|
|
import { Header } from "./Header";
|
2026-03-05 19:46:44 +00:00
|
|
|
import { Profile, profileLoader } from "./Profile";
|
2026-01-10 03:44:55 +00:00
|
|
|
|
|
|
|
|
const theme = createTheme({
|
|
|
|
|
components: {
|
|
|
|
|
InputWrapper: Input.Wrapper.extend({
|
|
|
|
|
defaultProps: {
|
|
|
|
|
inputWrapperOrder: ["label", "input", "description", "error"],
|
2026-01-29 21:30:51 +00:00
|
|
|
mb: "xs",
|
2026-01-10 03:44:55 +00:00
|
|
|
},
|
|
|
|
|
}),
|
2026-01-29 21:30:51 +00:00
|
|
|
Paper: Paper.extend({
|
|
|
|
|
defaultProps: {
|
|
|
|
|
p: "sm",
|
|
|
|
|
shadow: "xs",
|
|
|
|
|
mb: "lg",
|
|
|
|
|
},
|
|
|
|
|
}),
|
|
|
|
|
Slider: Slider.extend({
|
|
|
|
|
vars: (theme) =>
|
|
|
|
|
({
|
|
|
|
|
root: {
|
|
|
|
|
"--slider-track-bg": theme.colors.gray[4],
|
|
|
|
|
},
|
2026-01-29 22:23:20 +00:00
|
|
|
}) as any,
|
2026-01-29 21:30:51 +00:00
|
|
|
}),
|
2026-01-10 03:44:55 +00:00
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const router = createBrowserRouter([
|
|
|
|
|
{
|
2026-03-05 17:55:33 +00:00
|
|
|
path: "/",
|
|
|
|
|
Component: Header,
|
|
|
|
|
children: [
|
|
|
|
|
{
|
|
|
|
|
path: "dashboard",
|
|
|
|
|
Component: Dashboard,
|
|
|
|
|
loader: subsListLoader,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "profile",
|
|
|
|
|
Component: Profile,
|
2026-03-05 19:46:44 +00:00
|
|
|
loader: profileLoader,
|
2026-03-05 17:55:33 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "orders/:username",
|
|
|
|
|
Component: SubOrderSets,
|
|
|
|
|
loader: subOrderSetsLoader,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "orders/:username/new",
|
|
|
|
|
Component: OrderSet,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
path: "orders/:username/:set_id",
|
|
|
|
|
Component: OrderSet,
|
|
|
|
|
loader: orderSetLoader,
|
|
|
|
|
action: orderSetAction,
|
|
|
|
|
},
|
|
|
|
|
],
|
2026-01-10 03:44:55 +00:00
|
|
|
},
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
ReactDOM.createRoot(document.getElementById("root")!).render(
|
|
|
|
|
<React.StrictMode>
|
|
|
|
|
<MantineProvider theme={theme}>
|
2026-03-04 21:14:18 +00:00
|
|
|
<UserContextProvider>
|
|
|
|
|
<Notifications />
|
|
|
|
|
<RouterProvider router={router} />
|
|
|
|
|
</UserContextProvider>
|
2026-01-10 03:44:55 +00:00
|
|
|
</MantineProvider>
|
2026-01-29 22:23:20 +00:00
|
|
|
</React.StrictMode>,
|
2026-01-10 03:44:55 +00:00
|
|
|
);
|