import React from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
import PagePermissionGuard from './components/PagePermissionGuard';
import { usePagePermissions } from './hooks/usePagePermissions';
import Layout from './components/Layout';
import Dashboard from './pages/Dashboard';
import Overview from './pages/Overview';
import Operations from './pages/Operations';
import Monitoring from './pages/Monitoring';
import Finance from './pages/Finance';
import FinanceTransactionLogs from './pages/FinanceTransactionLogs';
import TokenHistoryPage from './pages/TokenHistory';
import TokenAnalytics from './pages/TokenAnalytics';
import SystemHealth from './pages/SystemHealth';
import UserProjectQuotaWrapper from './pages/UserProjectQuota';
import UserManagement from './pages/UserManagement';
import RoleManagement from './pages/RoleManagement';
import GoalfyMaxUsers from './pages/GoalfyMaxUsers';
import UserFeedback from './pages/UserFeedback';
import MessagePush from './pages/MessagePush';
import VendorModelPricing from './pages/VendorModelPricing';
import MCPProviderPricing from './pages/MCPProviderPricing';
import VmPricing from './pages/VmPricing';
import SystemConfigs from './pages/SystemConfigs';
import UserLevelConfigs from './pages/UserLevelConfigs';
import AuditLogs from './pages/AuditLogs';
import InviteCodes from './pages/InviteCodes';
import NoPermission from './pages/NoPermission';
import FinanceSandboxCosts from './pages/FinanceSandboxCosts';
import FinanceTokenUsage from './pages/FinanceTokenUsage';
import FinanceMcpUsage from './pages/FinanceMcpUsage';
import FinancePaymentRecords from './pages/FinancePaymentRecords';
import FinanceMcpAccountRechargeRecords from './pages/FinanceMcpAccountRechargeRecords';
import FinanceModelAccountRechargeRecords from './pages/FinanceModelAccountRechargeRecords';
function App() {
const FirstAllowedRedirect: React.FC = () => {
const { getAccessiblePages } = usePagePermissions();
const pages = getAccessiblePages();
const target = pages[0] || '/no-permission';
console.log('↪️ [Router] default redirect to:', target, 'pages=', pages);
return ;
};
return (
{/* 默认落地:首个可访问页面或无权限页 */}
} />
{/* 仪表盘(受页面权限控制) */}
}>
}
/>
{/* 总览页面(受页面权限控制) */}
}>
}
/>
{/* 运营页面 - 嵌套路由(父路径受控) */}
} />
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
{/* 监控页面 - 嵌套路由(父路径受控) */}
} />
}>
}
/>
}>
}
/>
}>
}
/>
{/* 财务页面(父路由重定向到子页面:用户流水) */}
} />
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
{/* 系统管理页面 - 嵌套路由 */}
} />
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
}>
}
/>
{/* 无权限页面 */}
} />
{/* 404页面 */}
} />
);
}
export default App;