gear-orders/flask/vite/src/main.tsx

78 lines
1.8 KiB
TypeScript
Raw Normal View History

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
import { SubsList, subsListLoader } from "./SubsList";
2026-01-29 21:30:51 +00:00
import { SubOrderSets, subOrderSetsLoader } from "./SubOrderSets";
import { SubOrderSet, subOrderSetLoader } from "./SubOrderSet";
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([
{
path: "dashboard",
Component: SubsList,
loader: subsListLoader,
},
{
2026-01-29 21:30:51 +00:00
path: "dashboard/subs/:username/",
Component: SubOrderSets,
loader: subOrderSetsLoader,
},
2026-01-30 16:52:32 +00:00
{
path: "dashboard/subs/:username/new",
Component: SubOrderSet,
},
2026-01-29 21:30:51 +00:00
{
path: "dashboard/subs/:username/:set_id",
Component: SubOrderSet,
loader: subOrderSetLoader,
2026-01-10 03:44:55 +00:00
},
]);
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<MantineProvider theme={theme}>
2026-01-29 22:23:20 +00:00
<Notifications />
2026-01-10 03:44:55 +00:00
<RouterProvider router={router} />
</MantineProvider>
2026-01-29 22:23:20 +00:00
</React.StrictMode>,
2026-01-10 03:44:55 +00:00
);