import { createInertiaApp } from '@inertiajs/react';
import createServer from '@inertiajs/react/server';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import ReactDOMServer from 'react-dom/server';
import { DocumentDirectionSync } from './components/document-direction-sync';
import { LanguageProvider } from './contexts/language-context';

const appName = import.meta.env.VITE_APP_NAME || 'AMS';

createServer((page) => createInertiaApp({
    page,
    render: ReactDOMServer.renderToString,
    title: (title) => (title ? `${title} - ${appName}` : appName),
    resolve: (name) => resolvePageComponent(`./pages/${name}.jsx`, import.meta.glob('./pages/**/*.jsx')),
    setup: ({ App, props }) => {
        return (
            <App {...props}>
                {({ Component, props: pageProps, key }) => (
                    <LanguageProvider>
                        <DocumentDirectionSync />
                        <Component key={key} {...pageProps} />
                    </LanguageProvider>
                )}
            </App>
        );
    },
}));

