store/resources/js/app.ts
Yoga Pangestu 9b20d26a4e
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run
refactor: remove PWA manifest file and update related configurations, improving project structure and icon handling in the PwaManifestController
2026-07-13 19:55:35 +07:00

50 lines
1.3 KiB
TypeScript

import { createInertiaApp } from '@inertiajs/vue3';
import { createApp, h } from 'vue';
import 'vue-sonner/style.css';
import { Toaster } from '@/components/ui/sonner';
import { useFlashToast } from '@/composables/useFlashToast';
import { restoreConnection } from '@/lib/thermal-printer/stable-transport';
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/sw.js', { scope: '/' })
.then((reg) => {
console.log('[SW] Registered:', reg.scope);
})
.catch((err) => {
console.error('[SW] Registration failed:', err);
});
}
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault();
(window as any).deferredPwaPrompt = e;
});
void restoreConnection();
const appName = import.meta.env.VITE_APP_NAME || 'Laravel';
createInertiaApp({
title: (title) => (title ? `${title} - ${appName}` : appName),
progress: {
color: '#4B5563',
},
setup({ el, App, props, plugin }) {
if (!el) {
return;
}
const app = createApp({
setup() {
useFlashToast();
return () => [h(App, props), h(Toaster)];
},
});
app.use(plugin);
app.mount(el);
},
});