A decentralized music tracking and discovery platform built on AT Protocol 馃幍
at fix/spotify 57 lines 1.9 kB view raw
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);