1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-25 07:47:55 +01:00

69 lines
1.9 KiB
TypeScript
Raw Normal View History

import {InertiaProgress} from '@inertiajs/progress';
import {createInertiaApp} from '@maicol07/inertia-mithril';
import cash from 'cash-dom';
import Mithril from 'mithril';
// noinspection SpellCheckingInspection
import redaxios from 'redaxios';
2022-01-06 17:19:59 +01:00
import {registerSW} from 'virtual:pwa-register';
import {type Page} from './Components';
2022-01-06 17:19:59 +01:00
import {
__ as translator,
showSnackbar
} from './utils';
// Variabili globali
globalThis.$ = cash;
globalThis.m = Mithril;
globalThis.__ = translator;
InertiaProgress.init();
await createInertiaApp({
title: ((title) => `${title} - OpenSTAManager`),
resolve: async (name: string) => {
const split = name.split('::');
if (split.length === 1) {
// Load bundled page
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const {default: page}: {default: Page} = await import(`./Views/${name}.tsx`);
return page;
}
// Load page from module
const [modulePath, page] = split;
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const osmModule: {default: unknown, [key: string]: unknown} = await import(
/* @vite-ignore */
`${importPath}/vendor/${modulePath}/index.js`
);
return osmModule[page];
},
setup({el, app}: {el: Element, app: Mithril.ComponentTypes}) {
m.mount(el, app);
}
});
$('#logout-button')
.on('click', async () => {
await redaxios.post(route('auth.logout'));
window.location.href = route('auth.login');
});
2022-01-06 17:19:59 +01:00
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const updateSW = registerSW({
async onNeedRefresh() {
const action = await showSnackbar(__('Aggiornamento del frontend disponibile!'), false, __('Ricarica'), __('Annulla'));
if (action === 'action') {
await updateSW();
}
},
onOfflineReady() {
// eslint-disable-next-line no-void
void showSnackbar(__('È ora possibile lavorare offline!'), false);
}
}) as (reloadPage?: boolean) => Promise<void>;