import { createInertiaApp, type ResolvedComponent } from '@inertiajs/svelte' import { mount } from 'svelte' createInertiaApp({ // Set default page title // see https://inertia-rails.netlify.app/guide/title-and-meta // // title: title => title ? `${title} - App` : 'App', // Disable progress bar // // see https://inertia-rails.netlify.app/guide/progress-indicators // progress: false, resolve: (name) => { const pages = import.meta.glob('../pages/**/*.svelte', { eager: true, }) const page = pages[`../pages/${name}.svelte`] if (!page) { console.error(`Missing Inertia page component: '${name}.svelte'`) } // To use a default layout, import the Layout component // and use the following line. // see https://inertia-rails.netlify.app/guide/pages#default-layouts // // return { default: page.default, layout: page.layout || Layout } return page }, setup({ el, App, props }) { if (el) { <%= " // @ts-expect-error 1.3.0 beta contains types mismatch\n" if inertia_resolved_version == Gem::Version.new('1.3.0-beta.2') -%> mount(App, { target: el, props }) } else { console.error( 'Missing root element.\n\n' + 'If you see this error, it probably means you load Inertia.js on non-Inertia pages.\n' + 'Consider moving <%%= vite_typescript_tag "inertia" %> to the Inertia-specific layout instead.', ) } }, })