import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../services/auth_service.dart'; import '../widgets/leetcode_card.dart'; import '../widgets/gitea_card.dart'; import '../widgets/kodbox_card.dart'; import 'settings_screen.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @override State createState() => _HomeScreenState(); } class _HomeScreenState extends State { int _selectedIndex = 0; final List _platforms = ['LeetCode', 'Gitea', 'KodBox']; @override void initState() { super.initState(); Provider.of(context, listen: false).loadCredentials(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('个人面板'), actions: [ IconButton( icon: const Icon(Icons.settings), onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (context) => const SettingsScreen()), ); }, ), ], ), drawer: Drawer( child: ListView( padding: EdgeInsets.zero, children: [ const DrawerHeader( decoration: BoxDecoration(color: Colors.blue), child: Text( '数据平台', style: TextStyle(color: Colors.white, fontSize: 24), ), ), ...List.generate(_platforms.length, (index) { return ListTile( selected: _selectedIndex == index, leading: Icon(_getPlatformIcon(_platforms[index])), title: Text(_platforms[index]), onTap: () { setState(() { _selectedIndex = index; }); Navigator.pop(context); }, ); }), ], ), ), body: _buildPlatformContent(), ); } IconData _getPlatformIcon(String platform) { switch (platform) { case 'LeetCode': return Icons.code; case 'Gitea': return Icons.storage; case 'KodBox': return Icons.folder; default: return Icons.help_outline; } } Widget _buildPlatformContent() { switch (_platforms[_selectedIndex]) { case 'LeetCode': return const LeetCodeCard(); case 'Gitea': return const GiteaCard(); case 'KodBox': return const KodBoxCard(); default: return const Center(child: Text('未知平台')); } } }