mirror of
https://github.com/System-End/hackatime.git
synced 2026-04-20 00:35:22 +00:00
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { createInertiaApp, type ResolvedComponent } from '@inertiajs/svelte'
|
|
import { mount } from 'svelte'
|
|
import AppLayout from '../layouts/AppLayout.svelte'
|
|
|
|
createInertiaApp({
|
|
// Disable progress bar
|
|
//
|
|
// see https://inertia-rails.dev/guide/progress-indicators
|
|
// progress: false,
|
|
|
|
resolve: (name) => {
|
|
const pages = import.meta.glob<ResolvedComponent>('../pages/**/*.svelte', {
|
|
eager: true,
|
|
})
|
|
const page = pages[`../pages/${name}.svelte`]
|
|
if (!page) {
|
|
console.error(`Missing Inertia page component: '${name}.svelte'`)
|
|
}
|
|
|
|
return { default: page.default, layout: page.layout || AppLayout } as ResolvedComponent
|
|
},
|
|
|
|
setup({ el, App, props }) {
|
|
if (el) {
|
|
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.',
|
|
)
|
|
}
|
|
},
|
|
|
|
defaults: {
|
|
form: {
|
|
forceIndicesArrayFormatInFormData: false,
|
|
},
|
|
future: {
|
|
useScriptElementForInitialPage: true,
|
|
useDataInertiaHeadAttribute: true,
|
|
useDialogForErrorModal: true,
|
|
preserveEqualProps: true,
|
|
},
|
|
},
|
|
})
|