import { createApp, nextTick } from 'vue' import { createPinia } from 'pinia' import Toast from 'vue-toastification' import 'vue-toastification/dist/index.css' import App from './App.vue' import router from './router' import './style.css' // Créer l'application const app = createApp(App) // Créer et configurer Pinia const pinia = createPinia() // Toast configuration const toastOptions = { position: 'top-right', timeout: 3000, closeOnClick: true, pauseOnFocusLoss: true, pauseOnHover: true, draggable: true, draggablePercent: 0.6, showCloseButtonOnHover: false, hideProgressBar: false, closeButton: 'button', icon: true, rtl: false } // Installer les plugins dans l'ordre correct // IMPORTANT: Pinia doit être installé AVANT le router app.use(pinia) app.use(Toast, toastOptions) // Maintenant installer le router app.use(router) // Handler d'erreur global pour capturer les erreurs non catchées window.addEventListener('error', (event) => { console.error('❌ Erreur JavaScript globale:', { message: event.message, filename: event.filename, lineno: event.lineno, colno: event.colno, error: event.error, stack: event.error?.stack }) }) // Handler pour les promesses rejetées non catchées window.addEventListener('unhandledrejection', (event) => { console.error('❌ Promesse rejetée non catchée:', { reason: event.reason, promise: event.promise, stack: event.reason?.stack }) // Empêcher le message d'erreur par défaut dans la console event.preventDefault() }) // Attendre que le router soit prêt avant de monter l'app router.isReady().then(() => { app.mount('#app') console.log('🚀 Application montée avec succès') }).catch((error) => { console.error('❌ Erreur lors du montage de l\'application:', error) // Fallback: monter l'app même en cas d'erreur app.mount('#app') })