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)

// 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')
})
