import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/theme/app_colors.dart'; import '../../../core/routes/app_routes.dart'; import '../../auth/providers/auth_provider.dart'; class ProfileHomeScreen extends ConsumerWidget { const ProfileHomeScreen({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final authState = ref.watch(authProvider); final user = authState.user; final isAuthenticated = authState.isAuthenticated; if (!isAuthenticated || user == null) { return _buildLoginPrompt(context); } return Scaffold( backgroundColor: AppColors.surface, appBar: AppBar( title: const Text('个人中心'), backgroundColor: AppColors.primary, ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ CircleAvatar( radius: 50, backgroundColor: AppColors.primary, child: Text( user.username?.substring(0, 1).toUpperCase() ?? 'U', style: const TextStyle(fontSize: 32, color: Colors.white), ), ), const SizedBox(height: 16), Text( user.username ?? '用户', style: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold), ), const SizedBox(height: 8), Text( user.email ?? '', style: const TextStyle(fontSize: 16, color: Colors.grey), ), const SizedBox(height: 32), ElevatedButton( onPressed: () async { await ref.read(authProvider.notifier).logout(); if (context.mounted) { Navigator.of(context).pushReplacementNamed(Routes.login); } }, child: const Text('退出登录'), ), ], ), ), ); } Widget _buildLoginPrompt(BuildContext context) { return Scaffold( backgroundColor: AppColors.surface, body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const Icon(Icons.person_outline, size: 80, color: Colors.grey), const SizedBox(height: 16), const Text('请先登录', style: TextStyle(fontSize: 20)), const SizedBox(height: 32), ElevatedButton( onPressed: () { Navigator.of(context).pushNamed(Routes.login); }, child: const Text('去登录'), ), ], ), ), ); } }