import React from 'react';
import { Navigate } from 'react-router-dom';
import { useSelector } from 'react-redux';
import type { RootState } from '@/store';

/**
 * 根路径智能重定向组件
 * 根据用户登录状态和菜单权限进行不同的跳转：
 * 1. 未登录 -> 登录页
 * 2. 已登录 + 有菜单 -> Dashboard
 * 3. 已登录 + 无菜单 -> 无权限页面
 */
const RootRedirect: React.FC = () => {
  const token = useSelector((state: RootState) => state.user.token);
  const menus = useSelector((state: RootState) => state.user.menus);
  const hasMenus = menus && menus.length > 0;

  // 未登录，跳转到登录页
  if (!token) {
    return <Navigate to="/login" replace />;
  }

  // 已登录，根据菜单权限跳转
  return hasMenus 
    ? <Navigate to="/dashboard" replace /> 
    : <Navigate to="/no-permission" replace />;
};

export default RootRedirect;
