import { createApp } from 'vue';
import App from './App.vue';
import router from './router'; // 确保引入了 router
import { createPinia } from 'pinia';
import ELementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import { checkLoginStatus } from './utils/auth';
import { useUserStore } from './stores/user';

const app = createApp(App);
const pinia = createPinia(); // 创建 Pinia 实例
app.use(pinia); // 注册 Pinia  

// 尝试从localStorage恢复用户状态（立即执行，不等待API）
const userStore = useUserStore();
const userId = localStorage.getItem('userId');
const username = localStorage.getItem('username');
const avatar = localStorage.getItem('avatar');
const role = localStorage.getItem('role');
const accessToken = localStorage.getItem('accessToken');
const refreshToken = localStorage.getItem('refreshToken');

// 如果本地存储中有用户信息，立即恢复登录状态
if (userId && username && accessToken && refreshToken) {
  userStore.login({
    userid: userId,
    userName: username,
    avatar: avatar || '',
    role: role || 1,
    accessToken,
    refreshToken
  });
  console.log('从本地存储恢复用户登录状态:', username);
}

app.use(router); // 注册 vue-router
app.use(ELementPlus); // 注册 element-plus

// 挂载应用
app.mount('#app');

// 在应用启动后异步验证登录状态，不阻塞应用启动
setTimeout(() => {
  checkLoginStatus()
    .then(isLoggedIn => {
      console.log('登录状态验证完成，用户登录状态:', isLoggedIn ? '已登录' : '未登录');
    })
    .catch(error => {
      console.error('登录状态验证失败，但不影响应用使用:', error);
    });
}, 500);