forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
2import { createRouter, RouterProvider } from "@tanstack/react-router";
3import { BaseProvider, createLightTheme } from "baseui";
4import { PLACEMENT, SnackbarProvider } from "baseui/snackbar";
5import { ToasterContainer } from "baseui/toast/toaster";
6import dayjs from "dayjs";
7import relativeTime from "dayjs/plugin/relativeTime";
8import utc from "dayjs/plugin/utc";
9import { PostHogProvider } from "posthog-js/react";
10import { createRoot } from "react-dom/client";
11import { Client as Styletron } from "styletron-engine-monolithic";
12import { Provider as StyletronProvider } from "styletron-react";
13import "./index.css";
14import { routeTree } from "./routeTree.gen.ts";
15
16dayjs.extend(relativeTime);
17dayjs.extend(utc);
18
19const primitives = {
20 primaryFontFamily: "RockfordSansRegular",
21};
22
23const theme = createLightTheme(primitives);
24const engine = new Styletron();
25
26const queryClient = new QueryClient();
27
28const router = createRouter({ routeTree });
29
30declare module "@tanstack/react-router" {
31 interface Register {
32 router: typeof router;
33 }
34}
35
36createRoot(document.getElementById("root")!).render(
37 //<StrictMode>
38 <QueryClientProvider client={queryClient}>
39 <StyletronProvider value={engine}>
40 <BaseProvider theme={theme}>
41 <ToasterContainer placement={PLACEMENT.bottom}>
42 <SnackbarProvider placement={PLACEMENT.bottom}>
43 <PostHogProvider
44 apiKey={import.meta.env.VITE_PUBLIC_POSTHOG_KEY}
45 options={{
46 api_host: "https://us.i.posthog.com",
47 }}
48 >
49 <RouterProvider router={router} />
50 </PostHogProvider>
51 </SnackbarProvider>
52 </ToasterContainer>
53 </BaseProvider>
54 </StyletronProvider>
55 </QueryClientProvider>,
56 //</StrictMode>
57);