30 lines
1.3 KiB
JavaScript
30 lines
1.3 KiB
JavaScript
import { createApp } from 'vue';
|
|
import App from './App.vue';
|
|
import router from './router';
|
|
import { useAuth } from './auth'; // 1. Импортируем useAuth
|
|
|
|
// Импорт стилей Bootstrap
|
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
|
|
|
// Создаем приложение
|
|
const app = createApp(App);
|
|
|
|
// Используем роутер
|
|
app.use(router);
|
|
|
|
// 2. Получаем экземпляр нашего auth "стора"
|
|
const { fetchUser } = useAuth();
|
|
|
|
// 3. Асинхронная самовызывающаяся функция для инициализации
|
|
(async () => {
|
|
try {
|
|
await fetchUser(); // Пытаемся загрузить пользователя по токену из localStorage
|
|
} catch (error) {
|
|
console.error("Ошибка при начальной загрузке пользователя в main.js:", error);
|
|
// Здесь можно ничего не делать, logout уже должен был быть вызван внутри fetchUser при ошибке
|
|
} finally {
|
|
// После того как fetchUser отработал (успешно или нет), монтируем приложение
|
|
app.mount('#app');
|
|
console.log('Приложение Vue смонтировано.');
|
|
}
|
|
})(); |