import React, { useState, useEffect } from "react"; import { Transition } from "@headlessui/react"; import { LinksFunction } from "@remix-run/deno"; import { Links, Meta, Outlet, Scripts, ScrollRestoration, } from "@remix-run/react"; import normalizeCss from "./styles/normalize.css?url"; import tailwindCss from "./styles/tailwind.css?url"; import baseCss from "./styles/base.css?url"; import { LoadingDotsBricks } from "~/components"; import { AuthenticationProvider } from "./contexts/Authentication"; import { ToasterProvider } from "~/contexts/ToasterContext"; // The following import prevents a Font Awesome icon server-side rendering bug, // where the icons flash from a very large icon down to a properly sized one: import "@fortawesome/fontawesome-svg-core/styles.css"; // Prevent fontawesome from adding its CSS since we did it manually above: import { config } from "@fortawesome/fontawesome-svg-core"; import { useSignals } from "@preact/signals-react/runtime"; import { pageHeight, pageWidth } from "~/store"; import { sidePanelWidth, timelineHeight } from "~/pages/PageEnigma/store"; import { AppUIProvider } from "~/contexts/AppUiContext"; config.autoAddCss = false; /* eslint-disable import/first */ export const links: LinksFunction = () => [ { rel: "stylesheet", href: normalizeCss, }, { rel: "stylesheet", href: tailwindCss, }, { rel: "stylesheet", href: baseCss, }, { rel: "preconnect", href: "https://fonts.googleapis.com", }, { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous", }, { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap", }, ]; export default function App() { const [topBarInnerComponent, setTopBarInnerComponent] = useState<{ location: string; node: React.ReactNode; } | null>(null); const [showLoader, setShowLoader] = useState(true); useEffect(() => { setTimeout(() => setShowLoader(false), 2500); }, []); useSignals(); useEffect(() => { function setPage() { // TODO address this issue with zooming pageHeight.value = window.innerHeight; pageWidth.value = window.innerWidth; } timelineHeight.value = window.innerHeight * 0.25; sidePanelWidth.value = 443; setPage(); window.addEventListener("resize", setPage); return () => { window.removeEventListener("resize", setPage); }; }, []); return (
); } function CompleteTakeoverLoadingScreen({ isShowing }: { isShowing: boolean }) { return ( ); }