import '../css/app.css';
import './bootstrap';
// Not: `flag-icons` paketinin SVG dosyaları doğrudan `useCountryFlag` composable
// içinden `import.meta.glob('/node_modules/flag-icons/flags/4x3/*.svg')` ile
// yüklenir; CSS sınıfı yaklaşımı kullanılmaz, böylece bundle boyutu küçük kalır.

import { createInertiaApp } from '@inertiajs/vue3';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import { createApp, h } from 'vue';
import { ZiggyVue } from '../../vendor/tightenco/ziggy';
import i18n from './i18n';

// Theme — FOUC önlemek için sayfa açılışında hemen uygulanır
(function () {
    try {
        const stored = localStorage.getItem('onox-theme')
        const isDark = stored === 'dark' || (stored === null && window.matchMedia('(prefers-color-scheme: dark)').matches)
        if (isDark) document.documentElement.classList.add('dark')
    } catch (e) {}
})()

// PWA service worker registration
if ('serviceWorker' in navigator) {
    window.addEventListener('load', () => {
        navigator.serviceWorker.register('/sw.js').catch(() => {})
    })
}

const appName = import.meta.env.VITE_APP_NAME || 'ONOX Panel';

createInertiaApp({
    title: (title) => `${title} - ${appName}`,
    resolve: (name) =>
        resolvePageComponent(
            `./Pages/${name}.vue`,
            import.meta.glob('./Pages/**/*.vue'),
        ),
    setup({ el, App, props, plugin }) {
        return createApp({ render: () => h(App, props) })
            .use(plugin)
            .use(i18n)
            .use(ZiggyVue)
            .mount(el);
    },
    progress: {
        color: '#EF305E',
    },
});
