greact/packages/greact/lib/index.ts
2025-04-14 09:17:18 -04:00

23 lines
481 B
TypeScript

import type { JSX } from "@lib/jsx/jsx-runtime";
import GLib20 from "gi://GLib";
import Gtk40 from "gi://Gtk?version=4.0";
export * from "./jsx/jsx-runtime";
export const createRoot = () => {
Gtk40.init();
const render = (element: JSX.Element) => {
const loop = GLib20.MainLoop.new(null, false);
if (element instanceof Gtk40.Window) {
element.connect("close-request", () => loop.quit());
element.present();
}
loop.run();
};
return {
render: render,
};
};