hackatime/app/javascript/entrypoints/inertia.ts
Mahad Kalam ef3f36c829
Inertia migration/UI3 (#911)
* Inertia p1?

* Inertia'fied signed out homepage?

* Split up signed in page

* WIP signed in v2?

* Better signed in?

* Clean up extensions page!

* Fix currently hacking

* Better docs page?

* Docs update 2

* Clean up "What is Hackatime?" + get rid of that godawful green dev mode

* Better nav?

* Cleaner settings?

* Fix commit times

* Fix flashes + OS improv

* Setup v2

* Readd some of the syncers?

* Remove stray emdash

* Clean up Step 3

* Oops, remove .vite

* bye bye, /inertia-example

* bin/rubocop -A

* Fix docs vuln
2026-02-09 11:26:30 +00:00

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,
},
},
})