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();
});