import "reflect-metadata"; import { render } from "@gpuix/react"; import { exit } from "../app/.server/init/exitHandler"; // @ts-expect-error import thoriumSvg from "../app/images/logo.svg" with { type: "text" }; import { ipAddresses } from "../app/utils/ipaddresses"; import { openInBrowser } from "./openInBrowser"; function ThoriumApp({ log, url }: { log: string; url: URL | null }) { return (
Thorium Nova {log} {url ? ipAddresses.map((i) => { const u = new URL(url); u.hostname = i; return ( { openInBrowser(u.toString()); }} > {u.toString()} ); }) : null}
exit()} > Close Server
); } const root = render(, { title: "Thorium Nova", width: 940, height: 660, titlebarTransparent: true, windowBackground: "blurred", trafficLightX: 16, trafficLightY: 17, appName: "Thorium Nova", // Agent checks need real GPU paint, not control of the user's keyboard. focus: typeof process === "undefined" || process.env.GPUIX_BACKGROUND !== "1", }); let address: string | null = null; const worker = new Worker("./desktop/exe.ts"); worker.addEventListener("error", (event) => { console.error("Error in worker", event.message); }); worker.addEventListener("message", (event) => { address = event.data.address ?? address; root.render(); });