import "@mantine/core/styles.css"; import "./index.css"; import React, { lazy, Suspense } from "react"; import { createRoot } from "react-dom/client"; import { BrowserRouter, Route } from "react-router-dom"; import { App } from "./components/App/App"; import { Home } from "./components/Home/Home"; import { Privacy, Terms, FAQ } from "./components/Pages/Pages"; import { TopBar } from "./components/TopBar/TopBar"; import { Footer } from "./components/Footer/Footer"; import firebase from "firebase/compat/app"; import "firebase/auth"; import { serverPath, softWhite } from "./utils/utils"; import { Create } from "./components/Create/Create"; import { Discord } from "./components/Discord/Discord"; import config from "./config"; import { DEFAULT_STATE, MetadataContext } from "./MetadataContext"; import { createTheme, MantineProvider } from "@mantine/core"; const theme = createTheme({ /** Your theme override here */ white: softWhite, }); const Debug = lazy(() => import("./components/Debug/Debug")); const firebaseConfig = config.VITE_FIREBASE_CONFIG; if (firebaseConfig) { firebase.initializeApp(JSON.parse(firebaseConfig)); } // Redirect old-style URLs if (window.location.hash && window.location.pathname === "/") { const hashRoomId = window.location.hash.substring(1); window.location.href = "/watch/" + hashRoomId; } class WatchParty extends React.Component { public state = DEFAULT_STATE; async componentDidMount() { if (firebaseConfig) { firebase.auth().onAuthStateChanged(async (user: firebase.User | null) => { if (user) { // console.log(user); this.setState({ user }); const token = await user.getIdToken(); const response = await window.fetch( serverPath + `/metadata?uid=${user.uid}&token=${token}`, ); const data = await response.json(); this.setState({ isSubscriber: data.isSubscriber, streamPath: data.streamPath, convertPath: data.convertPath, beta: data.beta, }); } }); } else { // Firebase isn't set up so enable subscriber features this.setState({ isSubscriber: true, }); } } render() { return ( // { return (