import { createInertiaApp } from '@inertiajs/react';
import { createRoot } from 'react-dom/client';
import type { ComponentType } from 'react';
import { BRAND_NAME } from './components/BrandLogo';
import ActionDialogHost from './components/ActionDialogHost';
import '../css/app.css';

const pages = import.meta.glob<{ default: ComponentType }>(
    './pages/**/*.tsx',
    { eager: true },
);

createInertiaApp({
    title: (title) => (title ? `${title} — ${BRAND_NAME}` : BRAND_NAME),
    resolve: (name) => pages[`./pages/${name}.tsx`],
    setup({ el, App, props }) {
        createRoot(el).render(<><App {...props} /><ActionDialogHost /></>);
    },
    progress: {
        color: '#3D43FF',
        showSpinner: false,
    },
});
