import React, { useEffect } from 'react';
import { Outlet } from 'react-router-dom';
import { startTokenCheck, stopTokenCheck, getRefreshToken } from './utils/auth';

export default function App() {
  useEffect(() => {
    console.log('[App] 组件挂载，检查是否需要启动token检测');
    
    // 如果用户已登录（有refreshToken），启动token定期检测
    const refreshToken = getRefreshToken();
    console.log('[App] refreshToken存在:', !!refreshToken);
    
    if (refreshToken) {
      // 每隔30秒检测一次token是否失效
      console.log('[App] 启动token检测');
      startTokenCheck(30);
    } else {
      console.log('[App] 没有refreshToken，不启动token检测');
    }

    // 组件卸载时清除定时器
    return () => {
      console.log('[App] 组件卸载，清除token检测定时器');
      stopTokenCheck();
    };
  }, []);
  
  // 监听refreshToken的变化，如果登录后refreshToken被设置，启动检测
  useEffect(() => {
    const checkAndStart = () => {
      const refreshToken = getRefreshToken();
      if (refreshToken) {
        console.log('[App] 检测到refreshToken，启动token检测');
        startTokenCheck(30);
      }
    };
    
    // 立即检查一次
    checkAndStart();
    
    // 每5秒检查一次refreshToken是否存在（用于登录后启动检测）
    const checkInterval = setInterval(checkAndStart, 5000);
    
    return () => {
      clearInterval(checkInterval);
    };
  }, []);

  return (
    <div>
      <Outlet />
    </div>
  );
}