import "../css/app.css";
import React from "react";
import { createRoot } from "react-dom/client";
import { createInertiaApp } from "@inertiajs/react";
import { resolvePageComponent } from "laravel-vite-plugin/inertia-helpers";
import AppLayout from "./layouts/AppLayout";
import { initializeTheme } from "./hooks/use-appearance";

initializeTheme();

createInertiaApp({
    title: (t) => (t ? `${t} · MINANGA` : "MINANGA"),
    resolve: (name) =>
        resolvePageComponent(
            `./pages/${name}.tsx`,
            import.meta.glob("./pages/**/*.tsx"),
        ).then((page: any) => {
            page.default.layout =
                page.default.layout ||
                ((page: any) => <AppLayout>{page}</AppLayout>);
            return page;
        }),
    setup({ el, App, props }) {
        createRoot(el).render(<App {...props} />);
        if ("serviceWorker" in navigator)
            navigator.serviceWorker.register("/sw.js").catch(() => {});
    },
});
